【问题标题】:Angular - store Token in Local Storage injectAngular - 在本地存储中存储令牌注入
【发布时间】:2019-03-24 01:41:13
【问题描述】:

我的问题不同于将身份验证令牌存储在Local Storage 中是否安全。我已经决定这样做了。我有canActivate 方法来保护那些不应该被未登录的用户访问的路由。 我只是检查令牌 - 它是否存在于Local Storage 中。如果是,我将用户导航到该路线。

我的问题是,如果有人在我的本地存储中注入令牌,只存在一些字符串 - 它会自动访问路由吗? 我在联系 API 方面没有问题,因为它们都获得了令牌和角色的授权。但我有一个问题,有人可以进入所有注册用户的路线。

我考虑添加授权 API,并在每个 canActivate 上检查 API 是否为令牌有效。

其他问题,我可以在哪里存储登录时从 API 返回的角色?因为我需要它们来决定为哪个用户打开哪条路线。如果我将它存储在Local Storage 我认为我有同样的问题(注入角色)。

【问题讨论】:

    标签: angular


    【解决方案1】:

    好吧,如果您在登录时获得一个 Token 作为响应,并将其存储在 Storage 中(我认为您应该使用 Session Storage),如果您输入无效的令牌,您将在任何 api 调用时收到错误,只需处理清空存储并将您导航回登录或其他任何内容的错误

    【讨论】:

    • 我将添加它以在 Api 调用中清除令牌。但是请向我解释一下会话存储,它在浏览器/选项卡关闭之前一直存在。当他返回网站时,我如何让用户保持登录状态?
    • @ElementW 如果您使用本地存储,则必须手动清空它(我认为),会话存储在您关闭选项卡之前有效(这很好)
    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2020-01-04
    相关资源
    最近更新 更多