【问题标题】:Post Restful Authentication发布 Restful 身份验证
【发布时间】:2018-01-11 13:47:58
【问题描述】:

我正在使用 MEAN 堆栈来开发 Web 应用程序。我选择它是完全无状态的 RESTFULL。对于身份验证,我使用 JWT(Json Web Token) 策略。

客户端向服务器发送登录请求,服务器进行身份验证并将 JWT 和用户数据发送到客户端(此处为角度 2)。我将此 JWT 令牌存储在 cookie 中。

现在我的问题是我们如何在视图中连续存储/显示用户详细信息。例如,如果我们认为 Facebook 是 restful,在用户登录后,客户端会显示用户数据,例如个人资料图片、个人资料链接等。

由于 Rest 身份验证仅检索数据,并在每个请求中发送凭据。

这些与用户相关的数据如何保留在客户端。是不是每次请求,都是从服务器获取用户数据,并在视图中不断更新。

如果是,如何或如果不是,那么我错过了什么。

我知道这个问题对专家来说可能是无稽之谈,但任何建议、建议或 kickstarter 信息对像我这样的新手都会有所帮助。是否有针对这些的最佳做法?

提前致谢

【问题讨论】:

    标签: mean-stack restful-authentication restful-architecture


    【解决方案1】:

    顺便说一下,你可以把用户数据存放在localStorage中,以备不时之需。

    【讨论】:

    • localStorage 容易受到 XSS 攻击。
    【解决方案2】:

    是的,您可以在每次请求时从服务器获取用户数据,但正确的方法是将其作为自定义声明存储在 JWT 令牌中,并在每个请求中从 cookie 中获取令牌,对其进行解码并从这些自定义声明中获取必要的详细信息.

    【讨论】:

    • 感谢您的回复。但是在 cookie 中存储详细信息可以在浏览器中轻松编辑(从客户端)。如果只存储 JWT 令牌并且有人对其进行编辑。我可以通过服务器通信检查它的有效性,但是如果用户详细信息被编码和存储。解码那些被篡改的用户详细信息可能会导致不需要的结果,对吧?
    • 1) JWT 签名还包括有效负载(自定义声明)。这意味着经过调和的有效负载将使 JWT 无效。 2) 获取 JWT 令牌时建议使用 SSL (HTTPS)。 3) 还有一个 JWE 规范定义了额外的 JWT 令牌加密。
    • 如何在客户端轻松修改 JWT 令牌。为了验证我必须在每个请求中向服务器发送 JWT(我存储在 cookie 中),如果它无效,我必须将用户重定向到登录页面。我的理解对吗???
    猜你喜欢
    • 2011-12-30
    • 2012-10-01
    • 2011-11-28
    • 2013-08-21
    • 2010-11-28
    • 2011-01-12
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    相关资源
    最近更新 更多