搜尋
首頁每日程式設計PHP知識OAuth2.0協議的介紹以及PHP接入

OAuth2.0的簡介

OAuth(Open Authorization,即開放授權)是一個無需告知第三方使用者的帳號以及密碼的情況下,授權使用者資訊給第三方的一個安全,開放的標準協議。更多關於協議的介紹,讀者可以參考RFC 6749 。

下面開始簡單的說明下該協定下最為經典的Authorization Code模式,介紹如下圖:

OAuth2.0協議的介紹以及PHP接入

我們說明下,上方流程中一共有四個角色。

  1. ResourceOwner為資源擁有者,就是我們的使用者自己

  2. User-Agent就是我們存取應用程式的瀏覽器

  3. Client為第三方服務

  4. AuthorizationServer為認證伺服器,可以理解為使用者資源的提供者。

那麼呼叫的流程則是:

  1. 使用者本身透過瀏覽器存取Client第三方的服務,Client透過建構OAuth2連結(參數包括目前第三方服務的身份ID,以及重定向URI),將使用者引導至認證伺服器的授權頁

  2. 此時使用者在瀏覽器上選擇是否同意授權

  3. 若使用者同意授權,則認證伺服器將使用者重定向到第一步指定的重定向URI,同時附上一個授權碼Code

  4. ##第三方服務收到授權碼,帶上授權碼來源的重定向URI,向認證伺服器申請憑證。

  5. 認證伺服器檢查授權碼和重定向URI的有效性,透過後頒發AccessToken(呼叫憑證)

d和e都是在服務端執行的,不需要透過瀏覽器

OAuth2的設計


OAuth2.0協議的介紹以及PHP接入

一、授權登入連結的建構

首先在使用者存取一個應用程式時,前端呼叫服務端的接口,服務端偵測到使用者未登錄,此時建構一個授權連結。

$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'];

快取方案建議

透過此協定取得到了使用者可以做一定的緩存,避免認證伺服器壓力過大。


  1. 第三方可以設計一定的cookie原則,用來儲存使用者資訊避免一直要求認證伺服器。

  2. #

以上是OAuth2.0協議的介紹以及PHP接入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser

Safe Exam Browser

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具