1.1.1 • Published 6 years ago
egg-passport-http-bearer v1.1.1
egg-passport-http-bearer
Install
$ npm i egg-passport --save
$ npm i egg-passport-http-bearer --save
Note: also need egg-passport .
Usage
// {app_root}/config/plugin.js
exports.passport = {
enable: true,
package: 'egg-passport',
};
exports.passportLocal = {
enable: true,
package: 'egg-passport-http-bearer',
};
Example
see fixture for more detail.
// ./controller/home.js
class HomeController extends Controller {
async index() {
const ctx = this.ctx;
ctx.body = `
<div>
<h2>${ctx.path}</h2>
<a href="/admin">admin</a>
</div>
`;
}
async admin() {
const { ctx } = this;
if (ctx.isAuthenticated()) {
// show user info
} else {
// do user login
}
}
async logout() {
const ctx = this.ctx;
ctx.logout();
ctx.redirect(ctx.get('referer') || '/');
}
}
// router.js
module.exports = app => {
app.router.get('/', 'home.render');
app.router.get('/admin', 'home.admin');
const localStrategy = app.passport.authenticate('bearer', { session: false}); // without session for restful api
app.router.post('/passport/token', localStrategy);
app.router.get('/logout', 'user.logout');
};
see passport example for more detail.