用戶要求在微信端登陸一次後,之後不須要再登陸. 個人系統是單獨的一個網站. 使用MVC的記住密碼功能, 若是用戶重啓,就仍是要輸入密碼,因此須要有一個惟一不變的用來標示用戶的ID。 OpenID就是這樣,微信用戶對於每一個公衆號它都是惟一的,無論關注仍是不關注。
如何作到呢?
使用微信的網頁受權(OAuth2.0),簡單點理解這個東西就是跑到微信去請求個回調,微信跳轉到你給的回調頁面,而後在頁面後面加個code, 你拿着code 去微信取你要的信息。
(1), 去公衆號後臺設置回調的域名
(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_redirecthtml
頁面就會跳轉到 www.baidu.com?code=***. 就能夠看到code了。
(4) 經過code 來獲取openID
https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_codeweb
這裏注意的是一個code只能使用一次,我開始不知道,反覆去取,致使程序時而好時而很差。 Code 5分鐘不用就過時。
我這裏只是去了OpenID。若是要取用戶的其它信息,就須要在取code的時候改scope=snsapi_userinfo。 開發者文檔也有詳細記錄