3 -【 API 開放平臺安全設計 】- 2 基於 OAuth2.0 協議方式

1 什麼是 OAuth

OAuthOAuth(開放授權)是一個開放標準,允許用戶授權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不需要將用戶名和密碼提供給第三方網站或分享他們數據的所有內容。

OAuth 適用於大型的互聯網公司,需要有接口文檔以及不同的測試環境,而小公司更多選擇 AccessToken

2 OAuth2.0

對於用戶相關的 OpenAPI(例如獲取用戶信息,動態同步,照片,日誌,分享等),爲了保護用戶數據的安全和隱私,第三方網站訪問用戶數據前都需要顯式的向用戶徵求授權。

QQ 登錄 OAuth2.0 採用 OAuth2.0 標準協議來進行用戶身份驗證和獲取用戶授權,相對於之前的 OAuth1.0 協議,其認證流程更簡單和安全。

3 OAuth2.0 總體處理流程

3.1 概念

參數 說明
appid
appsecret
access_token
openid
回調地址
授權地址

3.2 步驟

  1. 在微信開發平臺申請對應的 appid 信息
  2. 網站生成登錄授權鏈接
  3. 用戶確認微信登錄後,獲取 code,並跳轉到回調地址(需要配置域名授權)
  4. 通過 code 換取網頁授權 access_token
  5. 使用 access_token + openid 獲取用戶信息
  6. 拉取用戶信息(需 scopesnsapi_userinfo)

在這裏插入圖片描述

4 實現微信授權獲取信息

微信網頁授權地址:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

  1. 填寫網頁授權回調地址權限

在這裏插入圖片描述

  1. 生成網頁授權地址
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx5c43fde3c9733d9e&redirect_uri=http://meitedu.s1.natapp.cc&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
  1. 跳轉到回調地址獲取授權碼
http://snow.s1.natapp.cc/?code=061yIRgM13IOc41ZQveM1tODgM1yIRge&state=STATE
  1. 通過 code 換取網頁授權 access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx5c43fde3c9733d9e&secret=b8b217126c33a5fb7074927d5e72a81a&code=061WfM4E0TABnc2Cv04E02Lb5E0WfM4b&grant_type=authorization_code
  1. 拉取用戶信息(需 scopesnsapi_userinfo)
https://api.weixin.qq.com/sns/userinfo?access_token=11_ZsmU50peG5LkOxn6XiFwXl9PRmlAlrFvWZ9fgxd3OM-vbiAHt_uf7gqG9iA9MnfIqf375eI8rkxf6GyqdsAkWw&openid=okYSmtzp4wWCrDCncMfGSRECVSeM&lang=zh_CN

5 聯合登錄

就是拿到 openid 後,直接到數據庫中查找 openid,然後找到對應的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章