【问题标题】: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 文章,非常好!