將node.js與Express服務器一起使用時,我的意圖是將已登錄的本地用戶保存在會話中,以便我可以從前端調用它並獲取用戶信息用戶實際上已登錄。未在護照快遞服務器上保存會話
爲此,我正在使用快速會話和護照。如果正確登錄並在req中保存會話,以下代碼將返回用戶。
我放棄了查詢並正確返回數據。
passport.use('local-login', new LocalStrategy({
usernameField: 'email',
passwordField: 'pass',
passReqToCallback: true
},
function(req, email, pass, done) {
return modelUsers.login(email, pass, done);
}));
這是我的會話配置。
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'strongertogether',
cookie: { secure: false }
})); // session secret
app.use(passport.initialize());
app.use(passport.session()); // Persistent login sessions
app.use(cors()); //Required for signin facebook
據我瞭解,一旦登錄完成,用戶保存在會議和功能req.isAuthenticated()應該返回真值反而是假的,req.user是不確定的。
事實twitter和facebook會話正常工作。
從前端(Angular.js)我打電話給
app.get('/api/loggedin', usersController.loggedin);
那去
function loggedin(req, res) {
res.send(req.isAuthenticated() ? req.user : '0');
}
版本:
「明示」:「^ 4.9.3 「
」express-session「:」^ 1.11.3「
「護照本地」: 「^ 1.0.0」
「護照」: 「^ 0.2.2」
我沒有經過你的代碼,但我是這個蘇格蘭有助於瞭解你的問題'https://scotch.io/tutorials/easy-node-認證的建立和local'。我使用相同的方法,對我來說工作得很好。經過鏈接可能我使用的是缺少的東西。 –