几个月前,我开始为Angular项目构建我的第一个基于令牌的身份验证,现在我需要对其进行升级。到目前为止,我的 / login 端点仅返回一个令牌,该令牌存储在本地存储中。当令牌存在且有效时,用户将登录。 但是现在我还需要在导航栏中显示用户名和用户角色,因为我需要创建角色保护。
我阅读了很多有关此主题的文章和问题/答案,但我真的很困惑,这是获取用户资料的最佳方法。
获取
商店
详细信息也应保持不变(如果用户关闭并打开浏览器),如何存储它们?我应该使用存储(本地存储/ cookie)吗?还是每次用户打开应用程序时执行一个请求?
使用
这里我没有任何线索。如果我使用存储设备,是否应该每次都阅读它们?还是应该使用主题?
从您的经验来看,哪种方法最好?还是您还有其他想法? 预先感谢!
答案 0 :(得分:1)
我正在处理这个问题,希望对您有所帮助。
api/login
这样的回复:{
token: 'your token...',
expireAt: 'token expire time',
user: {
name: 'admin',
role: 'master'
// ... else user info
}
}
使用localStorage
保存令牌和用户信息。下次打开同一网站时,您可以从本地存储中获取令牌信息,然后根据到期时间确定是否需要重新登录。
cookie
不应保存复杂或大型的数据结构,因为它是: