【问题标题】:User management in Single Page App + REST backendSingle Page App + REST 后端中的用户管理
【发布时间】:2015-07-13 09:14:41
【问题描述】:

在单页 JS (Mithril) 应用中进行用户管理的最佳方式是什么?我希望用户登录以加载首选项并担任角色,以便他们获得某些权限。我有一个用 Python (Falcon web framework) 编写的 REST API 后端。稍加阅读后,似乎可以归结为将凭据发送到后端并取回令牌。但问题是应该怎么做。似乎tokens are a better method than cookies,但这对秘密/令牌的交换有影响。例如,“xhr.withCredentials”方法似乎是基于 cookie 的。 JWT(json web tokens)似乎是一个现代的、有趣的选项,但很难找到一个清晰的解释它如何与 SPA 一起使用。一旦 Mithril 应用程序有一个令牌,我应该将它存储在哪里以及我应该如何将其用于后续请求?

【问题讨论】:

    标签: python rest single-page-application mithril.js falcon


    【解决方案1】:

    这与秘银无关,实际上唯一与秘银相关的领域是服务器通信。这是通过m.request 方法(docs here) 完成的,但是您需要为所有需要身份验证的服务器通信创建一个对象。

    该对象应该了解身份验证系统并检测令牌是否过期,然后请求一个新令牌,如果出现故障则采取适当的措施等。这有点工作,但是对于大多数身份验证系统来说,过程是不同的,所以没什么可做的,除了使用已经存在的东西。

    作为一个小而精的 MVC 框架,Mithril 没有内置任何与安全相关的功能,但 m.request 方法非常强大,您应该在 auth 通信对象中使用它。

    客户端存储将在 cookie 或 HTML5 存储中。这是一个更深入的 StackExchange 答案:https://security.stackexchange.com/a/80767 但重点是这也与秘银无关。

    感谢您链接到令牌与 cookie 文章,非常好!

    【讨论】:

    • 很好的答案!谢谢,ciscoheat!
    • 很高兴我能帮上忙。 :)
    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2014-04-18
    • 2022-10-04
    • 1970-01-01
    • 2019-02-28
    • 2017-02-02
    • 2020-03-11
    • 1970-01-01
    相关资源
    最近更新 更多