簡體   English   中英

帆+護照+基本認證

[英]Sails + passport + Basic Authentication

在護照js(基本策略)中,以下代碼示例提供了用於驗證用戶身份的功能。

passport.use(new BasicStrategy(
  function(userid, password, done) {
    User.findOne({ username: userid }, function (err, user) {
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.verifyPassword(password)) { return done(null, false); }
      return done(null, user);
    });
  }
));

問題是此代碼應放在Sails應用程序的哪個文件中(哪個文件)? 我想同樣適用於自定義驗證功能嗎?

  1. 在controllers目錄下創建AuthController
  2. 然后編寫代碼以使護照處理登錄過程

     login: function(req, res) { passport.authenticate('local', function(err, user, info) { if ((err) || (!user)) { return res.send({ message: info.message, user: user }); } req.logIn(user, function(err) { if (err) res.send(err); return res.send({ message: info.message, user: user }); }); })(req, res); 
  3. 這行passport.authenticate('local'將從config.js內部的passport.js讀取配置,如下所示:-

    Passport.use(new LocalStrategy({usernameField:'email',passwordField:'password'},function(email,password,done){

     User.findOne({ email: email }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect email.' }); } bcrypt.compare(password, user.password, function (err, res) { if (!res) return done(null, false, { message: 'Invalid Password' }); var returnUser = { email: user.email, createdAt: user.createdAt, id: user.id }; return done(null, returnUser, { message: 'Logged In Successfully' }); }); }); 
  4. 將這些行添加到route.js中:- 'post /login': 'AuthController.login'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM