我想開發一個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. JavaScript REST客戶端和會話管理
- 4. 用戶和用戶會話
- 5. 每個用戶JWT和一個(!)會話/無併發會話
- 6. SpringMVC REST access_token和會話
- 7. NHibernate的無國籍插入行爲
- 8. 併發關於無國籍豆
- 9. 是Django的渠道WebSocketConsumers無國籍
- 10. 無國籍註釋不能找到
- 11. SQL COUNT國籍與多位藝術家和藝術家的數量,國籍
- 12. Rest api會話
- 13. Sencha Touch,JSONP,ASP.NET WCF REST和用戶會話
- 14. NetBeans從REST客戶端調試會話
- 15. 會話和用戶信息
- 16. 的Symfony2:無國籍身份驗證設置爲true,會話仍然會被創建
- 17. React.createElement:使用array.map無國籍組件內部時類型無效
- 18. facebook REST API - 無限會話密鑰
- 19. 無效的會話ID從Salesforce REST API
- 20. REST - 創建會話
- 21. 無國籍的ejb在WAR>包到EAR>本地ejb電話
- 22. 其他用戶的會話無效
- 23. 用於創建用戶的REST會話工作流程
- 24. Xamarin.Forms無法解析裝配無國籍錯誤
- 25. SugarCRM:使用REST調用獲取「無效會話ID」錯誤
- 26. 會話用戶名
- 27. 由用戶會話
- 28. PHP用戶會話
- 29. django會話用戶
- 30. ember.js - 用戶會話
好,感謝您的回答;)不,我並不需要使用OAuth因爲我可以讓不同的客戶端知道用戶憑據。 – ayorosmage 2011-01-08 15:20:45