OAuth2.0认证
OAuth(開放授權)是一個開放標準,允許用戶授權第三方應用訪問他們存儲在另外的服務提供者上的信息,而不需要將用戶名和密碼提供給第三方應用或分享他們數據的所有內容。OAuth2.0是OAuth協議的延續版本,但不兼容OAuth 1.0即完全廢止了OAuth1.0。
OAuth2.0正是實現了上面的機制,它的運行流程如下:
(A)小王訪問技術論壇,并使用QQ登錄,QQ要求小王授權。
? (B)小王同意QQ給予技術論壇授權。
? (C)技術論壇使用上一步獲得的授權,向QQ認證服務器申請令牌(access_token)。
? (D)QQ認證服務器對技術論壇進行認證以后,確認無誤,同意發放令牌(access_token)。
? (E)技術論壇使用令牌,向QQ資源服務器申請獲取小王的基本信息。
? (F)QQ的資源服務器確認令牌(access_token)無誤,同意向技術論壇開放相關資源(用戶信息)。
通過上面流程我們了解到OAuth2.0有以下角色:
-
客戶端(Client):第三方應用,本身不存儲資源,需要通過資源擁有者的授權去請求資源服務器的資源。本例中指的是技術論壇
-
資源擁有者(Resource Owner):通常為用戶,也可以是應用程序,即該資源的擁有者。本例指的是小王。
-
認證服務器(Authorization Server 也稱授權服務器):用于服務提供商對資源擁有的身份進行認證、對訪問資源進行授權,認證成功后會給客戶端發放令牌(access_token),作為客戶端訪問資源服務器的憑據。本例指的是QQ用于提供OAuth2.0開放機制,而專門搭建的認證服務器。
-
資源服務器(Resource Server):服務提供商存儲用戶生成的資源的服務器。本例指的是QQ用于存放用戶數據的服務器。
總結
以上是生活随笔為你收集整理的OAuth2.0认证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JWT令牌的缺点
- 下一篇: 引入OAuth2的主要目的