use*_*789 3 authentication node.js express jwt
我有一个简单的网络应用程序,用户可以创建一个帐户并登录...每当用户登录时,我都会json-web-token为他生成一个帐户并将其存储在他的数据库对象中...我在token用户访问某些时使用它来验证用户的身份路由(标题上的不记名令牌)但问题是,当用户刷新页面时,我丢失了该令牌,他必须再次提供电子邮件和密码才能生成另一个令牌...我正在考虑使用localStorage或cookies,但也许有一个更好/常用的方法...任何建议都会有帮助,谢谢。
router.post('/user/login' ,async (req,res)=>{
try {
const user = await User.findByCredentials(req.body.email,req.body.password)
const token = await user.generateToken()
res.send({ user, token })
} catch(e) {
res.status(404).send(e)
}
})
Run Code Online (Sandbox Code Playgroud)
axios({
method: "post",
url: "/api/user/login",
data: {
email: email,
password: password
}
})
Run Code Online (Sandbox Code Playgroud)
使用持久会话(记住我功能)的传统方法是使用 cookie。
您可以在登录时设置最长期限(例如 30 天)。
router.post('/user/login', function(req, res) {
....
req.session.cookie.maxAge = 30 * 24 * 60 * 60 * 1000; // Cookie expires after 30 days
....
});
Run Code Online (Sandbox Code Playgroud)
逻辑流程应该是:
hash(cookie)) 并将其存储在数据库中。| 归档时间: |
|
| 查看次数: |
8011 次 |
| 最近记录: |