OAuth - 第三方登錄的原理


第三方登錄的原理

所謂第三方登錄,實質就是 OAuth 授權。用戶想要登錄 A 網站,A 網站讓用戶提供第三方網站的數據,證明自己的身份。獲取第三方網站的身份數據,就需要 OAuth 授權。

舉例來說,A 網站允許 GitHub 登錄,背后就是下面的流程。

1、A 網站讓用戶跳轉到 GitHub。
2、GitHub 要求用戶登錄,然后詢問"A 網站要求獲得 xx 權限,你是否同意?"
3、用戶同意,GitHub 就會重定向回 A 網站,同時發回一個授權碼。
4、A 網站使用授權碼,向 GitHub 請求令牌。
5、GitHub 返回令牌.
6、A 網站使用令牌,向 GitHub 請求用戶數據。

下面就是這個流程的代碼實現。

一個應用要求 OAuth 授權,必須先到對方網站登記,讓對方知道是誰在請求。

https://github.com/settings/applications/new

應用的名稱隨便填,主頁 URL 填寫http://localhost:8080,跳轉網址填寫 http://localhost:8080/oauth/redirect

提交表單以后,GitHub 應該會返回客戶端 ID(client ID)和客戶端密鑰(client secret),這就是應用的身份識別碼。

https://github.com/login/oauth/authorize?client_id=35d221af61529dfba857&scope=user,repo:status

 https://github.com/login/oauth/authorize?response_type=code&redirect_uri=https%3A%2F%2Frestlet.auth0.com%2Flogin%2Fcallback&scope=user%3Aemail&state=Y_D6Q590vW4t_OaddPJSAdlHo0t8zteW&client_id=745f4270657c18be71bd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM