微信OpenID獲取


用戶要求在微信端登錄一次后,以后不需要再登錄.  我的系統是單獨的一個網站. 使用MVC的記住密碼功能, 如果用戶重啟,就還是要輸入密碼,所以需要有一個唯一不變的用來標示用戶的ID。  OpenID就是這樣,微信用戶對於每個公眾號它都是唯一的,不管關注還是不關注。
 
如何做到呢?
 
使用微信的網頁授權(OAuth2.0),簡單點理解這個東西就是跑到微信去請求個回調,微信跳轉到你給的回調頁面,然后在頁面后面加個code,  你拿着code 去微信取你要的信息。
(1), 去公眾號后台設置回調的域名
       在開發-- 接口權限 -- 網頁賬號-- 用戶授權獲取用戶基礎信息   點擊 “修改”,輸入域名。  如 www.baidu.com
 
(2)  綁定開發者微信號: 在開發--開發者工具 -- web開發者工具--進入 綁定開發者微信
 
(3) 這個時候你就可以試着看到code.  比如
在微信web開發者工具中輸入

https://open.weixin.qq.com/connect/oauth2/authorize?appid=*******&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_base&state=1#wechat_redirect

頁面就會跳轉到  www.baidu.com?code=***.  就可以看到code了。
 
(4) 通過code 來獲取openID

https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_code

會返回json 數據包,里面有要得OpenID 。  具體可以參見: http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
 
這里注意的是一個code只能使用一次,我開始不知道,反復去取,導致程序時而好時而不好。  Code 5分鍾不用就過期。
我這里只是去了OpenID。如果要取用戶的其它信息,就需要在取code的時候改scope=snsapi_userinfo。 開發者文檔也有詳細記錄


免責聲明!

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



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