我使用Backbone和RequireJS为注册用户或非注册用户创建了js应用程序。要从数据库中检索数据,我使用简单的JSON Web服务,当然有些方法不适用于任务。问题是我不知道应该在哪里或如何存储从服务器回收的验证数据,而无需将其重新加载到每个视图中。我应该使用Cookie吗?当我使用Backbone和AMD模块时,哪里是存储授权数据的最佳位置?
回答
我想这取决于您的身份验证,授权方法以及您需要为用户考虑的安全类型。如果你试图成为RESTful,你不能有会话来保存状态(至少在服务器端)。你可以,但如果这对你很重要的话,由于在服务器上保存状态,它不会成为RESTful。我听说可以保存状态客户端,但从我读过的内容来看,我不确定社区对采用此方法的某些实现感觉如何。 (就像cookies一样,我会在稍后再次访问。)
假设您有用户使用用户名和密码登录。您可以将这些信息保存在您的Backbone应用程序中,也许您有一个名为AUTH的模型来执行此操作。每次向服务器发送请求时,您都会发送该数据,每次出行时服务器会认证并给予或拒绝对给定资源的访问。如果您使用基本身份验证,则此信息将出现在我认为的标头中。使用SSL减轻了围绕通过电线发送此信息以及讨论其余部分的一些主要安全问题,让我们假设这是我们正在使用的。
另一种可以做到这一点的方法是使用加密的cookie,加密的cookie会话。这是我用我目前的应用程序做的。老实说,我不知道这是否被认为是违反RESTful原则。网络上的一般聊天似乎有很多“饼干不好,会话不好”,有些人说,“变得真实”。如果有人可以访问用户计算机,使用cookie会让你遭受cookie劫持,但根据你的应用程序和安全需求,这可能不是一个不合理的选择。它适用于我,如果它不是RESTful,我喜欢称它为RESTLike。
要关闭我只会描述我的设置。这也很好,让你的想法以及堆栈的意见。
基本上我有一个设置,当有人进入主页面时,服务器检查加密的cookie会话。如果cookie会话无效或不存在,它会为用户提供常规页面,并有机会登录。当他们登录时,我通过POST发送该信息,因此它位于请求的主体中,而不是URI。 (这在技术上违反了REST HTTP动词概念,因为您使用POST来保存资源。)处理该信息时,请检查用户名,传递由唯一salt创建的哈希,然后服务器创建加密的会话cookie并通过它回到用户。现在,每次我的用户点击需要认证的路由时,服务器都会检查cookie以确保它仍然有效(时间限制,用户信息等),如果允许,则允许访问。如果没有,它会销毁cookie信息并发回相应的状态码。骨干应用程序通过重置任何不应由未经身份验证的用户手中的视图和数据并向他们显示登录屏幕来对此作出反应。
希望这给你一个想法。这是我如何去做的答案,但如果有人有批评或者有更好的想法,我会乐意为他们加注。
- 1. 哪里是使用mongodb在api中存储约束的最佳位置
- 2. IOS。授权后在哪里存储用户数据?
- 3. 哪里是检查对象权限的最佳位置?
- 4. 存储Smarty模板缓存文件的最佳位置在哪里?
- 5. 哪里是验证表单数据的最佳位置?
- 6. AMD + Backbone + JSDoc3文档的最佳途径
- 7. 当我使用存储库模式时,我在哪里放置业务逻辑?
- 8. 使用require.js作为AMD模块包含jQuery,Underscore和Backbone的最佳方式是什么?
- 9. 什么是存储位置信息的最佳数据结构?
- 10. 当我给定位置时,哪里可以找到hive数据库的位置?
- 11. 哪里是调用的最佳位置removeOnTabSelectedListener
- 12. ProfileBase.Save()存储我的数据在哪里?
- 13. 在哪里存储我的数据?
- 14. 当我安装流星时,vagrant(PuPHPet使用)在哪里存储数据?
- 15. python模块存储在哪里?
- 16. python模块在哪里存储?
- 17. 哪里是存储Mac应用程序数据库的正确位置?
- 18. React.js&Flux - 哪里是注册Websocket事件的最佳位置(接收数据)
- 19. 哪里是放置NSUserDefault保存/加载代码的最佳位置?
- 20. IOS/SQLLite:哪里/哪里是创建数据库的最佳时间
- 21. 找到位置的最佳node.js模块?
- 22. getStoreConfig的最佳位置 - 块或模型
- 23. 授权模块
- 24. 哪个是存储来自excel的数据的最佳方式
- 25. Laravel 5授权服务中存储的能力在哪里?
- 26. 存储和操作我的数据的最佳数据结构?
- 27. 在哪里存储数据?
- 28. 数据存储在哪里?
- 29. 哪里是指定maven仓库,pom.xml或settings.xml的最佳位置?
- 30. 哪里是查找枚举类型的最佳位置?