简单说一下微信开发OAuth2.0授权的一个小坑
来源:互联网 发布:敢聊软件下载 编辑:程序博客网 时间:2024/06/16 14:09
最近在开发一个微信项目,在网页中要获得微信用户的基本信息,微信给出一个连接,可以通过该连接引导用户授权,连接样式如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect如果你的代码中在用户访问这个网址之前有逻辑想要写入session中,那么很不幸,用户在访问这段连接后,授权后回调回来时,相当于又开启了新的会话,之前保存的session就没用了。所以,大家有什么需要保存的数据,还是写在state参数中,以get的方式获得吧。
举个例子:
如果,我有一个需要用户从微信中打开的链接,其中,有一个参数id用于判断是通过谁来访问的,id就是邀请人的id,类似于:
http://xxx.com/index.php?id=123
代码:
<?php// 检测邀请人idif (isset($_GET['id'])) {// 把id存入session中session_start();$_SESSION['id'] = $_GET['id'];}// 检测是否是微信回调回来的页面elseif (isset($_GET['code']) && isset($_GET['state'])) {// 逻辑代码用户可以在这里授权// ......// ......// 获取到用户信息后,把信息存在session中$_SESSION['openid'] = $data->openid;// 把邀请人ID存到数据库中// ......}elseif (isset($_SESSION['openid'])) {// 如果存在$_SESSION['openid']跳过授权页面,直接进入相关逻辑,不能让用户每次访问都授权// 授权次数是有限的// 逻辑代码}?>
所以,如果在回调之前有要保存的数据,最好在state中,微信回调回来的地址中会把你的参数含在地址中,可以用get方式获取。
0 0
- 简单说一下微信开发OAuth2.0授权的一个小坑
- 微信oauth2.0授权
- 微信OAuth2.0授权
- 微信网页授权(OAuth2.0) PHP 源码简单实现
- 微信公众平台开发 OAuth2.0网页授权认证
- 微信公众平台开发 OAuth2.0网页授权认证
- 微信公众平台开发OAuth2.0网页授权
- 微信公众平台开发--OAuth2.0网页授权
- 微信公众平台开发:OAuth2.0网页授权
- 微信公众平台开发--OAuth2.0网页授权
- 【wechat】微信开发——OAuth2.0网页授权
- 微信公众平台开发 OAuth2.0网页授权认证
- 微信开发网页授权OAuth2.0注意事项
- 微信公众平台开发 OAuth2.0网页授权认证
- java微信开发-OAuth2.0授权
- 微信公众平台开发 OAuth2.0网页授权
- 微信公众平台开发 OAuth2.0网页授权认证
- 微信公众平台开发 OAuth2.0网页授权认证
- 黑马程序员——修改JAVA_HOME无效,java版本保持不变的问题(已解决)
- 【创建型模式一】单例模式(Singleton)
- 又一个程序猿的奋斗史——第二章 实习
- 重载输入输出运算符引用的理解
- debug版本运行没有问题,而release版本总是报错?
- 简单说一下微信开发OAuth2.0授权的一个小坑
- HDOJ 题目1829A Bug's Life(分组并查集)
- hdu 4031 树状数组
- 认识毛佳佳的进来看一下
- 又一个程序猿的奋斗史——第三章 入职
- 大话通信总结
- C 代码-----问题记录
- XML 和 List 互转类
- Opencv视频流操作