摘要:生成授權(quán)碼如果用戶選擇同意授權(quán),那么應(yīng)用將生成授權(quán)碼并攜帶授權(quán)碼跳轉(zhuǎn)回應(yīng)用提供的。這個中可以做任意事情,比如保存授權(quán)碼,后期再獲取,或者繼續(xù)認(rèn)證步驟,通過授權(quán)碼獲取這邊要注意的是授權(quán)碼的有效期一般授權(quán)碼有效期都較短,左右。
參考文章
理解 OAuth 2.0 阮一峰--授權(quán)碼模式,有缺漏
OAuth 2.0 官網(wǎng)-關(guān)于授權(quán)碼模式的完整教程
OAuth 2.0 官網(wǎng)-授權(quán)代碼請求
組成成分用戶
應(yīng)用1
應(yīng)用2
流程用戶在應(yīng)用1瀏覽、使用的過程中,涉及到要使用應(yīng)用2功能的時候,就產(chǎn)生了 oauth 認(rèn)證!
以下具體步驟參考的是:Laravel passport OAuth 認(rèn)證
A. 登錄授權(quán)應(yīng)用1攜帶如下查詢字符串:
response_type | client_id | redirect_uri | scope | state |
---|---|---|---|---|
code | xxx | http://app.com/callback | "" | auth |
跳轉(zhuǎn)到應(yīng)用2的登錄授權(quán)界面,用戶輸入應(yīng)用2的賬號、密碼進行登錄,登錄后彈出是否對應(yīng)用1授權(quán)。
B. 生成授權(quán)碼如果用戶選擇同意授權(quán),那么應(yīng)用2將生成授權(quán)碼并攜帶授權(quán)碼跳轉(zhuǎn)回應(yīng)用1提供的 redirect_uri。這個 redirect_uri 中可以做任意事情,比如保存授權(quán)碼,后期再獲取 token,或者繼續(xù)認(rèn)證步驟,通過授權(quán)碼獲取 token,這邊要注意的是授權(quán)碼的有效期!一般授權(quán)碼有效期都較短,10min 左右。
C. 獲取 token之前都是采取鏈接跳轉(zhuǎn)的方式(Get 請求)執(zhí)行操作,到目前的獲取 token 步驟后應(yīng)使用 post 方式在服務(wù)端通過 curl 完成!!
應(yīng)用1提供如下參數(shù)(redirect_uri 要和 A 步驟中的一致!?。?/p>
grant_type | client_id | client_secret | redirect_uri | code |
---|---|---|---|---|
authorization_code | xxx | xxx | http://app.com/callback | xxx |
向應(yīng)用2發(fā)起 post 請求獲取 token,應(yīng)用2認(rèn)證相關(guān)參數(shù),通過后響應(yīng)如下數(shù)據(jù):
{ token_type: "" , access_token: "xxx" , refresh_token: "xxx" , expire: "YYYY-MM-DD HH:II:SS" }
應(yīng)用1獲取數(shù)據(jù)保存到數(shù)據(jù)庫。
D. 調(diào)用應(yīng)用1調(diào)用應(yīng)用2的 api,在應(yīng)用1上提供應(yīng)用2的服務(wù)!
應(yīng)用1在請求頭上攜帶:
Authorization: token_type access_token
調(diào)用應(yīng)用2的 api 獲取數(shù)據(jù)。
釋疑 get/post 請求方式是如何確定的??get/post 請求方式由實現(xiàn)方確定,即:應(yīng)用2。我上面舉的例子中是推薦采用的請求方式,實際請求方式應(yīng)該根據(jù)實現(xiàn)方提供的開發(fā)文檔確定!
如下字段是如何獲取的??client_id 應(yīng)用id client_secret 應(yīng)用密鑰 redirect_uri 重定向 uri // 一般還需要提供 app_name 應(yīng)用名稱 app_url 應(yīng)用網(wǎng)址 ....等
應(yīng)用1提前向應(yīng)用2申請?zhí)峁┑?/strong>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/28890.html
摘要:本文單純從簡單的技術(shù)實現(xiàn)來講,不涉及開放平臺的多維度的運營理念。它的特點就是通過客戶端的后臺服務(wù)器,與服務(wù)提供商的認(rèn)證服務(wù)器進行互動能夠滿足絕大多數(shù)開放平臺認(rèn)證授權(quán)的需求。 本文單純從簡單的技術(shù)實現(xiàn)來講,不涉及開放平臺的多維度的運營理念。 什么是開放平臺 通過開放自己平臺產(chǎn)品服務(wù)的各種API接口,讓其他第三方開發(fā)者在開發(fā)應(yīng)用時根據(jù)需求直接調(diào)用,例如微信登錄、QQ登錄、微信支付、微博登錄...
摘要:本文單純從簡單的技術(shù)實現(xiàn)來講,不涉及開放平臺的多維度的運營理念。它的特點就是通過客戶端的后臺服務(wù)器,與服務(wù)提供商的認(rèn)證服務(wù)器進行互動能夠滿足絕大多數(shù)開放平臺認(rèn)證授權(quán)的需求。 本文單純從簡單的技術(shù)實現(xiàn)來講,不涉及開放平臺的多維度的運營理念。 什么是開放平臺 通過開放自己平臺產(chǎn)品服務(wù)的各種API接口,讓其他第三方開發(fā)者在開發(fā)應(yīng)用時根據(jù)需求直接調(diào)用,例如微信登錄、QQ登錄、微信支付、微博登錄...
摘要:是什么提供身份認(rèn)證和授權(quán)服務(wù)。你希望你的用戶能使用微信登錄,同時你還希望能追蹤到用戶的注冊來源,活動數(shù)據(jù),以便你做后續(xù)的用戶增長。 Authing 是什么? Authing 提供身份認(rèn)證和授權(quán)服務(wù)。 我們?yōu)殚_發(fā)者和企業(yè)提供用以保證應(yīng)用程序安全所需的認(rèn)證模塊,這讓開發(fā)人員無需成為安全專家。 你可以將以任意語言和任意技術(shù)棧編寫的應(yīng)用接入到 Authing,同時你還可以自定義應(yīng)用程序的登錄方...
閱讀 3650·2021-11-25 09:43
閱讀 2019·2019-08-30 13:56
閱讀 1289·2019-08-30 12:58
閱讀 3492·2019-08-29 13:52
閱讀 817·2019-08-26 12:17
閱讀 1513·2019-08-26 11:32
閱讀 1011·2019-08-23 13:50
閱讀 1358·2019-08-23 11:53