java - 微信登录oauth2.0授权相关问题
PHP中文网
PHP中文网 2017-04-18 09:55:06
0
4
645

微信登录,用户授权给第三方,第三方在获得授权码之前微信怎么判断是哪个用户授的权,还有请求accessToken时,只带了code,势必生成code的时候会有和用户相关的绑定信息,要不怎么去验code,只有code正确,才会生成相应的token,求大神指教,感觉理解还不到位

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(4)
小葫芦

code是臨時數據,由於是透過連結跳轉傳遞給你的,所以這個參數不能是用戶身份相關的數據,所以給你一個臨時數據,然後你再用這個臨時數據去換取代表用戶身份的token。

黄舟

code可以理解是使用者的授權,token可以理解為是第三方給予呼叫方該使用者授權。

刘奇

微信授權需要你掃二維碼,你掃碼的時候微信會發送訊息給伺服器,這樣伺服器就知道是誰授的權了。
回傳的code是伺服器產生的唯一值,跟使用者資訊一起保存在伺服器上呢,微信當然可以分辨

PHPzhong

謝謝以上的回答,我看了一點源碼,是的確實有綁定關係,生成授權碼時,微信認證服務器會判斷是否登錄,如果登錄後,會生成這個用戶相關的token(usernamepasswordtoken,這個token跟換的token沒有關係,只是用來識別使用者的),然後產生code,儲存code、client_id、username三者的關係,然後回傳code,當客戶端去請求token時,會根據client_id、code驗code的正確性,正確的話,微信認證伺服器會獲得當前用戶,然後根據client_id、username、scop(如果scope不為空的話)產生authenicateId,再產生accessToken,保存authenicateId和accessToken的關係,最後removeCode,返回accessToken

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!