【问题标题】:Passport Local strategy not called未调用 Passport Local 策略
【发布时间】:2017-06-04 12:36:05
【问题描述】:

我使用 angularJS+passport 来执行用户身份验证,因此,我在下面设置了这些。 HTML:

<div ng-controller="logincontroller">
<form>
Email:<input type="text" ng-model="user.email"/>
Password:<input type="password" ng-model="user.password"/>
<div ng-click=loginUser()>Submit</div>
</form>
</div>

在客户端javascript中:

  app.controller('logincontroller',function($scope,$http){
    $scope.loginUser=function(){
    $http.post('/loginUser',JSON.stringify($scope.user));
   }
   })

打开 app.js

var bodyParser = require('body-parser');
var cookieParser=require('cookie-parser');
var passport=require('passport');
var LocalStrategy=require('passport-local').Strategy();
var session=require('express-session');
app.use(express.session({secret:"flibbertygibbit"}));
app.use(cookieParser());
app.use(passport.initialize());
app.use(passport.session());
app.use(bodyParser.json());
passport.use(new LocalStrategy(
    {usernameField: 'user.email',
    passwordField: 'user.password',
    passReqToCallback: true
  },
    function(username,password,done){
      console.log("am here"+username+" "+password);

}
))


app.post('/loginUser',passport.authenticate('local'));

我面临的问题是根本没有调用本地策略,我得到的只是 Typerror: Local strategy requires a verify callback。我不确定我哪里出错了,新手。请帮忙。

【问题讨论】:

    标签: javascript passport.js mean-stack passport-local


    【解决方案1】:

    你得到的错误是由这个引起的:

    var LocalStrategy=require('passport-local').Strategy();
                                                        ^^
    

    您在没有任何参数的情况下调用 Strategy 类,因此这会导致错误。您想存储对类本身的引用,如下所示:

    var LocalStrategy=require('passport-local').Strategy;
    

    另外,由于您设置了passReqToCallback : true,因此验证回调将采用四个 参数,而不是三个。它应该是这样的:

    function(req, username, password, done) { ... }
    

    【讨论】:

    • 你完全正确。对不起这个愚蠢的错误。我纠正了它,现在我没有收到 Type Error 但我收到 400 - Bad request 。你能告诉我为什么吗?
    • @Gayathri 我不确定您发布数据的方式是否正确(也许不要在上面调用 JSON.stringify(),但我对 Angular 不太熟悉,所以不确定)。
    • 我没有在 html 中添加 name 属性,这就是为什么值没有传递给 strategy 的原因。
    猜你喜欢
    • 2020-06-09
    • 2018-09-14
    • 2023-04-05
    • 2019-09-30
    • 2020-03-24
    • 2015-09-28
    • 2019-03-19
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多