1.1.1 • Published 6 years ago

egg-passport-http-bearer v1.1.1

Weekly downloads
11
License
-
Repository
github
Last release
6 years ago

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.