Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parameters of session:false not work #152

Open
jcyh0120 opened this issue Feb 13, 2017 · 3 comments
Open

Parameters of session:false not work #152

jcyh0120 opened this issue Feb 13, 2017 · 3 comments

Comments

@jcyh0120
Copy link

I tried this example code passport-local-example and applied parameters to local strategy.

//express-4.x-local-example/server.js
passport.use(new LocalStrategy({
  usernameField: 'email',
  passwordField: 'passwd',
  passReqToCallback: true,
  session: false
}, function(req, username, password, done) {
  // request object is now first argument
  // ...
  }));

However, it seems that session is still in use. I could get user's password from req.session.user.

Only username , password, callback are set in this lib.

//passport-local/lib/strategy.js
function Strategy(options, verify) {
  if (typeof options == 'function') {
    verify = options;
    options = {};
  }
  if (!verify) { throw new TypeError('LocalStrategy requires a verify callback'); }
  
  this._usernameField = options.usernameField || 'username';
  this._passwordField = options.passwordField || 'password';
  
  passport.Strategy.call(this);
  this.name = 'local';
  this._verify = verify;
  this._passReqToCallback = options.passReqToCallback;
}

I don't have experience in security. Is it correct that I could get user's password in req.user.password?
Will this be unsafe?

@barroudjo
Copy link

I also realized that sessions are always in use, even when set to false in the strategy options. This is an issue, right ?

@micmro
Copy link

micmro commented Jun 8, 2017

Bit of a late answer but as reference for everyone else:

The sessions option described int he readme appears to be wrong (see PR to fix this).

It needs to be added to the passport.authenticate middleware initialization instead (source):

app.post('/login', passport.authenticate(['local'], {
    session: true
    /** other options **/
  }), (req, res) => {
    /** your handler */
  })

@wzup
Copy link

wzup commented Jun 29, 2017

Same here #155

session: false has to be in

passport.authenticate('local', {session:false})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants