php授权验证系统 c,OAuth 2.0 授权码认证
參考文章
組成成分
用戶
應用1
應用2
流程
用戶在應用1瀏覽、使用的過程中,涉及到要使用應用2功能的時候,就產生了 oauth 認證!
A. 登錄授權
應用1攜帶如下查詢字符串:
response_type
client_id
redirect_uri
scope
state
跳轉到應用2的登錄授權界面,用戶輸入應用2的賬號、密碼進行登錄,登錄后彈出是否對應用1授權。
B. 生成授權碼
如果用戶選擇同意授權,那么應用2將生成授權碼并攜帶授權碼跳轉回應用1提供的 redirect_uri。這個 redirect_uri 中可以做任意事情,比如保存授權碼,后期再獲取 token,或者繼續認證步驟,通過授權碼獲取 token,這邊要注意的是授權碼的有效期!一般授權碼有效期都較短,10min 左右。
C. 獲取 token
之前都是采取鏈接跳轉的方式(Get 請求)執行操作,到目前的獲取 token 步驟后應使用 post 方式在服務端通過 curl 完成!!
應用1提供如下參數(redirect_uri 要和 A 步驟中的一致!!):
grant_type
client_id
client_secret
redirect_uri
code
authorization_code
xxx
xxx
xxx
向應用2發起 post 請求獲取 token,應用2認證相關參數,通過后響應如下數據:
{
token_type: '' ,
access_token: 'xxx' ,
refresh_token: 'xxx' ,
expire: 'YYYY-MM-DD HH:II:SS'
}
應用1獲取數據保存到數據庫。
D. 調用
應用1調用應用2的 api,在應用1上提供應用2的服務!
應用1在請求頭上攜帶:
Authorization: token_type access_token
調用應用2的 api 獲取數據。
釋疑
get/post 請求方式是如何確定的??
get/post 請求方式由實現方確定,即:應用2。我上面舉的例子中是推薦采用的請求方式,實際請求方式應該根據實現方提供的開發文檔確定!
如下字段是如何獲取的??
client_id 應用id
client_secret 應用密鑰
redirect_uri 重定向 uri
// 一般還需要提供
app_name 應用名稱
app_url 應用網址
....等
應用1提前向應用2申請提供的
總結
以上是生活随笔為你收集整理的php授权验证系统 c,OAuth 2.0 授权码认证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle11g中用asmlib配置磁
- 下一篇: php获取本机ip外网地址,php获取本