博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信OpenID获取
阅读量:6929 次
发布时间:2019-06-27

本文共 931 字,大约阅读时间需要 3 分钟。

用户要求在微信端登录一次后,以后不需要再登录.  我的系统是单独的一个网站. 使用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

会返回json 数据包,里面有要得OpenID 。  具体可以参见:
 
这里注意的是一个code只能使用一次,我开始不知道,反复去取,导致程序时而好时而不好。  Code 5分钟不用就过期。
我这里只是去了OpenID。如果要取用户的其它信息,就需要在取code的时候改scope=snsapi_userinfo。 开发者文档也有详细记录

转载于:https://www.cnblogs.com/dengkun/p/5222667.html

你可能感兴趣的文章
客户端脚本安全
查看>>
发声 | 再访《Scratch少儿趣味编程》系列图书作者阿部和广访谈问题有奖征集...
查看>>
搭建在线直播
查看>>
《DOM编程艺术》中初步实现的图片库的总结(一)
查看>>
C编译警告
查看>>
UXCore:一个兼容主流浏览器的 React PC 组件库
查看>>
腾讯后台开发实习生一面
查看>>
[LintCode/LeetCode] Lowest Common Ancestor of BST/Binary Tree
查看>>
搭建现代的 Karma 测试环境
查看>>
PHP 多维数组相同key的value值累加函数
查看>>
JavaScript DOM扩展——“HTML5”的注意要点
查看>>
OpenStack设计与实现4——消息总线(AMQP)
查看>>
一个例子记住C++对象的生存周期
查看>>
基于Mesos的操作系统之RogerOS
查看>>
JS基础篇--事件绑定及深入
查看>>
Google 推出 Node 应用 Web 渲染界面 Carlo
查看>>
进一步成熟,Chrome OS 提供了更完整的 USB 支持
查看>>
Node.js ORM 框架 Sequelize 重要更新 v5 发布
查看>>
【meteor初体验-0.0.1】meteor简单开始
查看>>
Python 小试牛刀,Django详细解读,让你更快的掌握它!!! ...
查看>>