Passport-local: Parameter sesi: salah tidak berfungsi

Dibuat pada 13 Feb 2017  ·  3Komentar  ·  Sumber: jaredhanson/passport-local

Saya mencoba contoh kode paspor-lokal-contoh ini dan menerapkan parameter ke strategi lokal.

//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
  // ...
  }));

Namun, sepertinya sesi itu masih digunakan. Saya bisa mendapatkan kata sandi pengguna dari req.session.user.

Hanya username , password, callback yang disetel di lib ini.

//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;
}

Saya tidak memiliki pengalaman dalam keamanan. Apakah benar saya bisa mendapatkan kata sandi pengguna di req.user.password?
Apakah ini tidak aman?

Komentar yang paling membantu

Sedikit jawaban yang terlambat tetapi sebagai referensi untuk orang lain:

Opsi sessions dijelaskan di dalam readme tampaknya salah ( lihat PR untuk memperbaikinya ).

Itu perlu ditambahkan ke inisialisasi middleware passport.authenticate sebagai gantinya ( source ):

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

Semua 3 komentar

Saya juga menyadari bahwa sesi selalu digunakan, bahkan ketika disetel ke false dalam opsi strategi. Ini adalah masalah, kan?

Sedikit jawaban yang terlambat tetapi sebagai referensi untuk orang lain:

Opsi sessions dijelaskan di dalam readme tampaknya salah ( lihat PR untuk memperbaikinya ).

Itu perlu ditambahkan ke inisialisasi middleware passport.authenticate sebagai gantinya ( source ):

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

Sama di sini https://github.com/jaredhanson/passport-local/issues/155

sesi: false harus masuk

passport.authenticate('local', {session:false})
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

matiasfha picture matiasfha  ·  15Komentar

coder90 picture coder90  ·  5Komentar

jacargentina picture jacargentina  ·  7Komentar

ghost picture ghost  ·  3Komentar

JonathanSum picture JonathanSum  ·  11Komentar