标签:
用户要求在微信端登录一次后,以后不需要再登录. 我的系统是单独的一个网站. 使用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_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
这里注意的是一个code只能使用一次,我开始不知道,反复去取,导致程序时而好时而不好。 Code 5分钟不用就过期。
我这里只是去了OpenID。如果要取用户的其它信息,就需要在取code的时候改scope=snsapi_userinfo。 开发者文档也有详细记录
微信OpenID获取
标签:
原文地址:http://www.cnblogs.com/dengkun/p/5222667.html