OAuth2 結合網站授權流程分析

來源:互聯網
上載者:User

標籤:

第一步:組裝 URL 請求擷取授權碼 code
    1. 使用者訪問一個第三方 URL 網址,這時第三方服務端收到請求,組裝 URL,隨機產生 state 並儲存(Cookies、Session、Mysql等),然後引導使用者請求訪問該 URL(自動跳轉到該 URL)
    2. 使用者會被帶到開放平台的授權網址頁面,使用者登入操作後,會跳轉到第三方的回調地址,並且 URL 會帶上 code 和 state

第二步:通過 code 擷取 access_token
    1. 第三方服務端擷取 code 和 state
    2. 第三方服務端驗證 state,以確保該請求是第三方伺服器自己發起的,防止 csrf 攻擊
    3. 第三方服務端驗證使用 code 加上 AppID、AppSecret 等,通過 API 介面換取 access_token(請求遠程 API 擷取遠端資料)

第三步:通過 access_token 調用介面
    1. 第三方服務端擷取到 access_token 後,通過 API 介面擷取使用者個人資訊,並完成登入或註冊動作,成為第三方使用者

以上部分為授權並擷取使用者資訊
接著第三方網站需要通過擷取到的使用者資訊進一步操作(註冊或登入)

1. 判斷使用者是否登入狀態,是的話直接綁定使用者
2. 非登入狀態則查詢該使用者是否綁定,如果已經綁定則跳轉,如果無綁定則忽略
3. 這時判斷擷取的使用者資訊組裝的使用者名稱是否存在,不存在則直接添加,存在則系統重新組裝使用者明,然後判斷是否使用者名稱是否線上,直到不存在添加使用者為止
4. 這時繼續判斷添加使用者的方法執行是否成功,不成功則提示註冊失敗,成功則拷貝帳戶圖片並更新使用者資料,然後執行登入。

1. 什麼是授權臨時票據(code)?
答:第三方通過 code 進行擷取 access_token 的時候需要用到,code 的逾時時間一般為幾分鐘(例如:10 分鐘),一個 code 只能成功換取一次 access_token 即失效。code 的臨時性和一次保障了授權登入的安全性。第三方可通過使用 https 和 state 參數,進一步加強自身授權登入的安全性。
 
2. 什麼是授權範圍(scope)?
答:授權範圍 scope 代表使用者授權給第三方的介面許可權,第三方應用需要向開放平台申請使用相應 scope 的許可權後,使用文檔所述方式讓使用者進行授權,經過使用者授權,擷取到相應 access_token 後方可對介面進行調用。
通俗點來說就是,API 介面許可權。例如:擷取使用者個人資訊 get_user_info 介面、擷取使用者粉絲列表 get_fanslist(當然這些要開放平台有這些 API 才行,這裡只是舉例)

OAuth2 結合網站授權流程分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.