单页应用程序 + REST 后端中的用户管理

User management in Single Page App + REST backend

单页JS怎么管理用户最好(Mithril) app? I want users to login to load preferences and take on a role so they gain certain permissions. I have a REST API backend written in Python (Falcon web framework). Having read a bit into it, it seems to boil down to sending credentials to the backend and get a token back. But the question is how that should be done. It seems that tokens are a better method than cookies,但是对secrets/tokens的交换有影响,'xhr.withCredentials'方法好像是例如基于 cookie。JWT(json 网络令牌)似乎是一个现代的、有趣的选项,但很难找到一个明确的解释如何将它与 SPA 一起使用。一旦 Mithril 应用程序有了令牌,我应该将它存储在哪里以及如何在后续请求中使用它?

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

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

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

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

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