1
我使用angularJS +護照來執行用戶驗證,因此,我在下面設置了它們。 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));
}
})
ON 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:本地策略需要驗證回調。我不知道我錯在哪裏,是新手。請幫忙。
你是完全正確的。對不起,這個愚蠢的錯誤。我糾正它,現在我沒有得到類型錯誤,但我得到400 - 錯誤的要求。你能告訴我爲什麼嗎? – Gayathri
@Gayathri我不確定您發佈數據的方式是否正確(可能不會調用'JSON.stringify()',但我對Angular不太熟悉,所以不太確定)。 – robertklep
我沒有給HTML添加名稱屬性,這就是爲什麼值沒有傳遞給策略的原因。 – Gayathri