OAuth2.0的簡介
OAuth(Open Authorization,即開放授權)是一個無需告知第三方使用者的帳號以及密碼的情況下,授權使用者資訊給第三方的一個安全,開放的標準協議。更多關於協議的介紹,讀者可以參考RFC 6749 。
下面開始簡單的說明下該協定下最為經典的Authorization Code模式,介紹如下圖:
我們說明下,上方流程中一共有四個角色。
ResourceOwner為資源擁有者,就是我們的使用者自己
User-Agent就是我們存取應用程式的瀏覽器
Client為第三方服務
AuthorizationServer為認證伺服器,可以理解為使用者資源的提供者。
那麼呼叫的流程則是:
使用者本身透過瀏覽器存取Client第三方的服務,Client透過建構OAuth2連結(參數包括目前第三方服務的身份ID,以及重定向URI),將使用者引導至認證伺服器的授權頁
此時使用者在瀏覽器上選擇是否同意授權
若使用者同意授權,則認證伺服器將使用者重定向到第一步指定的重定向URI,同時附上一個授權碼Code
- ##第三方服務收到授權碼,帶上授權碼來源的重定向URI,向認證伺服器申請憑證。
- 認證伺服器檢查授權碼和重定向URI的有效性,透過後頒發AccessToken(呼叫憑證)
d和e都是在服務端執行的,不需要透過瀏覽器OAuth2的設計
$redirect_uri = 'https://test.xx.ccom/index'; $this->goUrl('https://auth.xx.com/connect/oauth2/authorize?appid=xxx&redirect_uri='.$redirect_uri);將該連結回傳給前端,前端直接跳到該連結。然後
https://auth.xx.com/connect/oauth2/authorize
對顯示一個是否同意授權的頁面,使用者透過點擊授權,此時認證伺服器將直接重定向到redirect_uri並且攜帶一個Code參數。當服務端再接收到這個code參數時,透過這個參數前往認證伺服器取得access_token。$code = $_GET['code']; $res = file_get_contents('.$code ); $access_token = $res['access_token'];然後服務端再透過這個access_token到認證伺服器換取使用者資訊。
$res = file_get_contents('https://auth.xx.com/user_info?token='.$access_token ); $uid = $res['uid']; $name = $res['name'];快取方案建議透過此協定取得到了使用者可以做一定的緩存,避免認證伺服器壓力過大。
- 第三方可以設計一定的cookie原則,用來儲存使用者資訊避免一直要求認證伺服器。 #
以上是OAuth2.0協議的介紹以及PHP接入的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具