egg-passport-local

1.2.1 • Public • Published

egg-passport-local

NPM version build status Test coverage David deps Known Vulnerabilities

Install

$ npm i egg-passport --save
$ npm i egg-passport-local --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-local',
};

Configuration

// {app_root}/config/config.default.js
exports.passportLocal = {
  // usernameField: 'username',
  // passwordField: 'password',
};

The available options are:

  • usernameField - Optional, defaults to username
  • passwordField - Optional, defaults to password

Both fields define the name of the properties in the POST body that are sent to the server.

see config/config.default.js for more detail.

after login successful, we can redirect to origin url by using ctx.session.returnTo before go to login page, for example:

ctx.sessioin.returnTo = ctx.path;

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 {
      // redirect to origin url by ctx.session.returnTo
      ctx.session.returnTo = ctx.path;
      await ctx.render('login.html');
    }
  }
 
  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('local');
  app.router.post('/passport/local', localStrategy);
 
  app.router.get('/logout', 'user.logout');
};

see passport example for more detail.

Questions & Suggestions

Please open an issue here.

License

MIT

Package Sidebar

Install

npm i egg-passport-local

Weekly Downloads

111

Version

1.2.1

License

MIT

Unpacked Size

6.88 kB

Total Files

6

Last publish

Collaborators

  • atian25
  • leiyanggz