首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport.js LocalStrategy逻辑

Passport.js LocalStrategy逻辑
EN

Stack Overflow用户
提问于 2013-11-12 22:03:45
回答 1查看 972关注 0票数 1

我想了解LocalStrategy是如何工作的。

这是我的服务器文件的一部分:

代码语言:javascript
复制
var passport = require('passport');
var express = require('express');
/* other initializations */
var app = express();

passport.use = new LocalStrategy(
        function(email, password, done) {
            module.exports.findByUsername(email, function(err, user){
                if (err) throw err;
                if(!user) {
                    done(null, false, { message: 'Incorrect username.' });
                }
                else if(user.password != password) {
                    done(null, false, { message: 'Incorrect password.' });
                }
                else {
                    return done(null, user);
                } 
            });
        }
    )

app.post("/login" 
    , passport.authenticate('local',{
        successRedirect : "/",
        failureRedirect : "/login",
    }) ,
    function(){
        console.log("post /login");
    }
);

现在,我从客户端浏览器向http://localhost:8000/login发送一个http post请求。如果认证成功,那么用户将被重定向到根页面"/",如果失败,用户将被重定向到登录页面。

问题是,当我们定义一个新的LocalStrategy时,我定义了一个function(email,password, done){...}。但是,当我在app.post("/login", ...){...}调用这个函数时,我该如何传递电子邮件和密码参数呢?

EN

回答 1

Stack Overflow用户

发布于 2013-11-12 22:15:55

默认情况下,passport假定您使用input name='username' input name='password'发布表单。按照passport docs中的说明覆盖它

代码语言:javascript
复制
passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
  },
  function(email, password, done) {
    // ...
  }
));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19931263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档