簡體   English   中英

如何為從移動和javascript Web應用程序訪問的rest API實現OAuth 2.0,如基於令牌的身份驗證

[英]How to implement OAuth 2.0 like token based authentication for rest API which is accessed from mobile and javascript web applications

我需要為我的REST API實現身份驗證和授權機制。 這是從移動應用程序和Web應用程序訪問的rest api。

機制我想實現:
所以根據我的理解,我使用的是基於密碼的身份驗證。 移動應用程序或javascript Web應用程序通過HTTPS post請求發送用戶名和密碼,以獲取有限時間的訪問令牌。

問題

  1. 因為訪問令牌每1小時左右到期。 再次請求最終用戶輸入用戶名和密碼。 這是不可接受的。
  2. 如果我們將令牌的時間延長一段時間,那么如果有人處理令牌,他們可以訪問Rest API更長時間。 由於Web應用程序是javascript應用程序,因此可以在計划文本中輕松使用。

所以我試圖理解像facebook和twitter這樣的應用程序如何為其原生移動應用程序實現授權。 他們是否通過存儲在本地存儲中永遠記住訪問令牌。 這樣如果一些惡意應用程序有root權限,那么android手機就可以訪問令牌。

對於在javascript和android應用程序中開發的獨立Web應用程序,它對上述機制有什么改進?

訪問令牌確實意味着短暫的生命。 為了保持很長一段時間的授權,OAuth2有一個叫做“刷新令牌”的東西。

如果提供商支持它(以及Google和Facebook都支持),OAuth2消費者可以在初始流程期間除了訪問令牌之外還請求刷新令牌(Google稱之為“離線訪問”,我相信)。 訪問令牌通常被使用,但是當它到期時,消費者可以使用其憑證和刷新令牌請求新的訪問令牌。

有關詳細信息,請參閱Google的文檔: https//developers.google.com/accounts/docs/OAuth2WebServer#offline

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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