簡體   English   中英

如何實現REST API的身份驗證?

[英]How to implement authentication for REST API?

我正在創建一個基於Web的服務,我希望將其作為REST API公開,以便開發人員能夠使用它創建應用程序。 我希望開發人員能夠創建/管理用戶帳戶並通過API進行身份驗證。 怎么辦呢? OAuth還是其他什么?

我正在使用python,flask,mongodb。

我們使用OAuth 2 (比OAuth 1更優選)解決了以下問題。 特別是我們使用資源所有者密碼憑證流。 至於如何將它集成到我們的RESTful服務中,這是一個想法:

  • 初始資源在被未授權用戶命中時返回401.401的主體包含單個鏈接,其中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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM