Passport-local: Masukkan variabel secara manual untuk kredensial alih-alih menggunakan formulir

Dibuat pada 5 Apr 2014  ·  4Komentar  ·  Sumber: jaredhanson/passport-local

Dari potongan kode yang diberikan sebagai contoh dalam dokumentasi passportjs

passport.use(Strategi Lokal baru(
fungsi (nama pengguna, kata sandi, selesai) {

Saya akhirnya menyadari bahwa PassportJS mencoba untuk secara otomatis mendapatkan bidang nama pengguna/kata sandi dalam permintaan posting secara otomatis tetapi masalahnya adalah saya menggunakan angularjs dan ajax untuk melakukan pengiriman sehingga permintaan posting saya untuk login hanya akan menjadi objek json berisi informasi yang tergores dari formulir login. Apakah ada opsi untuk secara manual meneruskan nama pengguna dan kata sandi secara langsung sebagai variabel?

Komentar yang paling membantu

Dibutuhkan notasi gaya bentuk untuk bersarang:

passport.use(new LocalStrategy({
    usernameField: 'user[email]',
    passwordField: 'user[password]',
    object: req.body.user
  },
  function(username, password, done) {
    // ...
  }
));

Semua 4 komentar

Saya pikir apa yang Anda lakukan adalah ini:

passport.use(new LocalStrategy({
    usernameField: 'username',
    passwordField: 'password'
  },
  function(username, password, done) {
    // ...
  }
));

Selama json yang Anda posting dari angularjs adalah sesuatu seperti: {username: 'xxxxxxx', password: 'xxxxxxx'} yang seharusnya berfungsi sesuai dengan https://github.com/jaredhanson/passport-local/blob/master/lib/strategy.js#L71

Saya memiliki masalah yang sama (juga menggunakan Angular.js). Tidak mungkin menggunakan nama pengguna dan kata sandi dari json jika bersarang, katakan:

POST /api/users/login
{
  user: {
    email: '[email protected]',
    password: 'correct horse battery staple' 
  }
}

Saya sudah mencoba mengatur usernameField ke user.email dan passwordField ke user.password , tetapi itu tidak berhasil. Saya akan mencoba mengacaukan fungsi pencarian lib/utils.js.

Atau, mungkin izinkan kami untuk mengganti objek yang diteruskan ke Strategy.authenticate? Dalam kasus saya, itu akan menjadi seperti:

passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password',
    object: req.body.user
  },
  function(username, password, done) {
    // ...
  }
));

Dibutuhkan notasi gaya bentuk untuk bersarang:

passport.use(new LocalStrategy({
    usernameField: 'user[email]',
    passwordField: 'user[password]',
    object: req.body.user
  },
  function(username, password, done) {
    // ...
  }
));

Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat