[英]How to implement authentication for REST API?
我正在創建一個基於Web的服務,我希望將其作為REST API公開,以便開發人員能夠使用它創建應用程序。 我希望開發人員能夠創建/管理用戶帳戶並通過API進行身份驗證。 怎么辦呢? OAuth還是其他什么?
我正在使用python,flask,mongodb。
我們使用OAuth 2 (比OAuth 1更優選)解決了以下問題。 特別是我們使用資源所有者密碼憑證流。 至於如何將它集成到我們的RESTful服務中,這是一個想法:
rel=oauth2-token
。 (如何通過鏈接發送信號取決於您的媒體類型;我們使用的是HAL ,但您甚至可以使用Link
頭。) Authorization
標頭中發送從OAuth 2進程返回的承載令牌。 此時,我們返回200,所有正常鏈接都可用。 我們不公開帳戶創建,但如果您想這樣做,我會使用初始資源中未授權用戶可用的其他鏈接。 該鏈接將具有自定義rel
因為它特定於您的應用程序,例如rel=http://rels.myapi.com/users
良好的RESTful設計表明與此rel
的鏈接指向例如http://myapi.com/users
,並且API的消費者對該端點執行POST
,該端點返回具有Location
頭指向的新用戶資源到新創建的用戶資源,例如http://myapi.com/users/username
。 (用戶資源本身當然是另一個rel
,區分單個用戶資源和多個用戶集合資源。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.