我想开发一个REST API。 REST准则指定该状态不得存储在服务器端。 但其余的方法,我想实现意味着用户连接管理。为了尊重无状态,我需要在每个REST方法请求中提供用户凭据吗?我发现效率很低...没有其他更有效的方法吗?REST无国籍和用户会话
4
A
回答
7
无国籍是一个REST架构的主要约束条件之一,可在原publication阅读:
5.1.3无国籍
接下来我们添加一个约束到客户端 - 服务器交互:通信本质上必须是无状态的,如第3.4.3节(图5-3)中的客户端无状态服务器(CSS)样式,以便客户端到服务器的每个请求都必须包含所有必要的信息理解请求,并且不能利用服务器上存储的任何上下文。 因此会话状态完全保留在客户端上。
所以你提到的凭据,您需要单独为他们提供在每次调用(即基本验证+ SSL)。当然,这是“真实的世界”出现的,应用程序开始有所不同。你也可以使用OAuth,固定标记等,但请记住,你则削弱了你的API的“RESTfulness”。
3
进行认证每个请求并不一定需要通过用户名和密码在每次请求。一些系统将采用用户名和密码,验证它,然后创建某种类型的安全令牌,以便在每个请求上传递。
的想法是,令牌应该是快于做一个完整的用户名密码检查来验证。很明显,取决于令牌生成和验证的复杂程度,您可能会打开其他安全漏洞,但您必须决定它的重要性。
相关问题
- 1. OAuth 2.0。没有会话? (无国籍)
- 2. C++类无国籍
- 3. 无国籍令牌过期
- 4. JavaScript REST客户端和会话管理
- 5. 用户和用户会话
- 6. 每个用户JWT和一个(!)会话/无并发会话
- 7. SpringMVC REST access_token和会话
- 8. NHibernate的无国籍插入行为
- 9. 无国籍模板方法实现
- 10. 是Django的渠道WebSocketConsumers无国籍
- 11. 并发关于无国籍豆
- 12. 无国籍注释不能找到
- 13. SQL COUNT国籍与多位艺术家和艺术家的数量,国籍
- 14. Rest api会话
- 15. Sencha Touch,JSONP,ASP.NET WCF REST和用户会话
- 16. 的Symfony2:无国籍身份验证设置为true,会话仍然会被创建
- 17. NetBeans从REST客户端调试会话
- 18. 会话和用户信息
- 19. 用户会话和登录
- 20. React.createElement:使用array.map无国籍组件内部时类型无效
- 21. 阵营无国籍组分和类型检查React.PropTypes.element
- 22. 无效的会话ID从Salesforce REST API
- 23. facebook REST API - 无限会话密钥
- 24. REST - 创建会话
- 25. 无国籍的ejb在WAR>包到EAR>本地ejb电话
- 26. 获取所有ID和用户名会籍ASP网MVC
- 27. REST中的OAuth令牌和会话
- 28. 春REST API和国际化
- 29. Xamarin.Forms无法解析装配无国籍错误
- 30. 无法启动用户的会话
好,感谢您的回答;)不,我并不需要使用OAuth因为我可以让不同的客户端知道用户凭据。 – ayorosmage 2011-01-08 15:20:45