OAuth2.0 微信授權機制


我在了解設計Restful接口的時候,發現涉及到接口驗證,可以利用OAuth2.0機制來驗證。
我開發的微信端Web網頁通過微信授權的時候,微信端也是用OAuth2.0機制來獲取用戶基本信息。

OAuth2.0

有四種授權模式:授權模式(微信)、簡化模式(前者簡化版)、密碼模式、客戶端模式。

授權模式(微信)

開發的微信端Web應用可以利用通過微信來獲取用戶基本信息,這樣就免了用戶去注冊登錄的繁雜步驟,只用點擊微信的授權頁面就能登錄。

用戶僅僅需要點擊授權,Web應用就能通過微信拿到用戶的微信基本信息,大大提高用戶體驗。

步驟

簡化的步驟:Web后端拿到access_token,通過access_token去跟微信拿到用戶信息。

所以關鍵是如何能夠拿到access_token。

1. 用戶授權

    "https://open.weixin.qq.com/connect/oauth2/authorize?"
		+ "appid=APPID&"  // 代表你公眾號
		+ "redirect_uri=REDIRECTURL&" // 處理Code的URL地址
		+ "response_type=code&" 
		+ "scope=SCOPE&" // 要拿到用戶的基本微信(需要授權)還是只拿到用戶的openid
		+ "state=STATE&connect_redirect=1#wechat_redirect"; // state 參數用來驗證 防止csrf(跨站請求偽造)攻擊

    這是微信官方頁面,會出現授權按鈕。

2. 獲取access_token

   一旦用戶在上述頁面點擊了授權,那么微信就會把code參數和state參數傳輸到我們redirect_uri后端。
    拿到state參數可用於驗證,從而防止cstf。
    重點在於code參數的利用。

    "https://api.weixin.qq.com/"
		+ "sns/oauth2/access_token?"
		+ "appid=APPID&"
		+ "secret=SECRET&"
		+ "code=CODE&"
		+ "grant_type=authorization_code";

    然后再通過微信的接口,發送我們的appid和appsecret以及code,然后就能拿到access_token和授權用戶的openid。

3. access_token和openid

    通過access_token和openid 我們就能通過微信官方接口來獲取授權用戶的基本信息。

為什么access_token和openid就能拿到用戶信息

1. 在微信官方頁面,用戶點擊了授權(用戶同意)

2. appsecret只有我們本身Web應用和微信才知道,同時redirect_uri也是登記在微信公眾平台(Web應用的正確性)


免責聲明!

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



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