在单页JS (Mithril)应用程序中做用户管理的最佳方法是什么?我希望用户登录加载首选项,并承担一个角色,使他们获得一定的权限。我有一个REST API后端写在Python(猎鹰web框架)。稍微了解一下之后,它似乎可以归结为向后端发送凭据并获取令牌。但问题是应该如何做到这一点。似乎令牌是比cookie更好的方法,但这对秘密/令牌的交换有影响。"xhr。withCredentials的方法似乎是基于cookie的。JWT (json web令牌)似乎是一个现代的,有趣的选择,但很难找到一个明确的解释它如何与SPA一起使用。一旦Mithril应用程序有一个令牌,我应该把它存储在哪里,我应该如何在后续请求中使用它?
这不是关于Mithril,实际上唯一与Mithril相关的领域是服务器通信。这是通过m.request
方法完成的,但是您需要为需要身份验证的所有服务器通信创建一个对象。
该对象应该了解认证系统,并检测令牌是否过期,然后请求一个新的令牌,如果失败则采取适当的措施,等等。这需要做一些工作,但是对于大多数认证系统来说,这个过程是不同的,所以除了使用一些已经存在的东西之外,没有太多的事情要做。
作为一个小而精简的MVC框架,Mithril没有任何内置的安全相关特性,但是m.request
方法非常强大,你应该在认证通信对象中使用它。
客户端存储将在cookie或HTML5存储中。以下是StackExchange的一个更深入的答案:https://security.stackexchange.com/a/80767但关键是这也与mithril无关。
感谢链接到token vs. cookies的文章,这是非常好的!