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

时间:2015-07-13 09:14:41

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

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

1 个答案:

答案 0 :(得分:1)

这与秘银没有关系,实际上唯一与秘银有关的区域是服务器通信。这是使用 sql = "SELECT idNurse,name,surname,isAdmin FROM falldb.nurse WHERE username='" + username + "' AND pass='" + pass + "'"; 方法(docs here)完成的,但您需要为需要身份验证的所有服务器通信创建一个对象。

该对象应该了解auth系统并检测令牌是否过期,然后请求新的令牌,如果失败则采取适当的行动等等。这有点工作,但对于大多数auth系统来说,过程是不同的,所以除了使用已经存在的东西之外没什么可做的。

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

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

感谢您链接到令牌与Cookie相关的文章,非常好!