我試圖建立與解析服務器簡單的認證系統:解析服務器登錄返回用戶,但req.user不確定
app.js
...
app.get('/login', (req, res) => {
res.render('login.ejs');
});
app.post('/login', (req, res) => {
console.log('POST /login\t' + util.inspect(req.body));
driver.login(req, (err, user) => {
//Here, user is defined
if(err) {
res.redirect('/login');
} else {
res.redirect('/user');
}
});
});
...
driver.js:
...
function login(req, callback) {
var username = req.body.username,
password = req.body.password;
Parse.User.logIn(username, password, {
success: (user) => {
callback();
},
error: (user, error) => {
callback(JSON.stringify(error));
}
});
}
function isLoggedIn(req, callback) {
console.log('isLoggedIn?');
console.log(util.inspect(req.user)); //undefined
if(req.user) {
callback();
} else {
callback('Not logged in');
}
}
...
當我訪問/login
,我可以登錄就好了,並重定向到/user
沒有任何錯誤,但/user
,它使用isLoggedIn
爲一箇中間件,req.user
未定義。
我在搜索過程中看到其他人遇到同樣的問題,但是使用JSSDK(反應/瀏覽器)的另一部分,或者沒有得到任何答案的帖子都是舊的(< 2015)。
我知道我可以使用會話,並基於此每次重新創建用戶,但它感覺真的很駭人,它真的是支持的方式嗎?
DrakaSAN - 你想怎麼支持會話的會話和存儲數據?正如@ sookool99提到的 - 你需要一個更多的抽象層。 –