所以我使用本地护照和快速会话,通过简单的登录和注册制作了基本的应用程序。
router.post('/register', (req, res) => {
var newUser = new User({
email: req.body.email,
username: req.body.username
});
User.register(newUser, req.body.password, (err, user) => {
if (err) {
res.status(404).json(err);
} else {
passport.authenticate('local')
(req, res, () => {
res.status(200).json({ "registerSuccess": true });
});
}
});
});
router.post('/login', function (req, res, next) {
passport.authenticate('local', function (err, user, info) {
if (err) {
return next(err);
}
// Redirect if it fails
if (!user) {
return res.status(404).json(info);
}
req.logIn(user, function (err) {
if (err) {
return res.status(200).json(err);
}
// Redirect if it succeeds
res.status(200).json({ "loginSuccess": true });
});
})(req, res, next);
});
使用POSTMAN我得到了想要的效果。在2台不同的计算机上,我使用2个不同的用户登录,并在' / getUser' route,我得到有关当前登录用户的信息。
现在我想把这个应用程序变成RESTful API(我相信它已经是)。
现在我在Angular5做前端。当我点击路线' / login'时,我得到了回复,我已成功登录,就像Postman一样。但是当我改变路线时,我不再登录了?
如何让用户登录前端?这甚至可以通过护照和快递吗?