微信oauth2.0,通过snsapi_base获取用户信息bug(可能算是我的场景造成的)
来源:互联网 发布:淘宝网裤袜 编辑:程序博客网 时间:2024/05/08 07:44
官方文档地址:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
场景
链接xxx.com/xxx.html需要获取用户openid,然后跳转回来继续访问。
差不多意思是2次访问同一链接的情况,但是第一次没有获取openid,第二次是已经获取到openid
流程
1.点击链接,假如无openid,通过oauth2.0去验证,session记录链接xxx.com/xxx.html( 目的是为了最后能返回来)
2.验证拿到code跳转到自己指定的redirecct_uri(如xxx.com/yyy.html),获取openid,写session保存(避免每次进来都去微信取)
3.做完这些再跳转到xxx.com/xxx.html (假如跳转的链接跟点击的链接不一样则没有关系)
问题来了,第3步,点击 “复制链接” 然后随便找个地方粘贴,会发现:你手机显示的内容是xxx.com/xxx.html所要显示的内容,但是链接是xxx.com/yyy.html
这不是坑爹吗?为啥?不知道有没有人碰到过我这种场景。
解决办法:
session记录的地址 xxx.com/xxx.html后面随便跟个参数使此链接跟访问的链接不一样即可
但是,又突然想了下,发现,假如别人是通过你分享的链接来访问的那该怎么办,问题还是会有,那么要2个参数切换。。。
public function replaceUrl($url){$contact = strpos($url, '?') === FALSE ? '?' : '&';if(strpos($url, 'weixinrp=') === FALSE && strpos($url, 'weixinrp1=') === FALSE) {$url .= $contact.'weixinrp=1';} elseif(strpos($url, 'weixinrp=') !== FALSE) {$url = str_replace('weixinrp=', 'weixinrp1=', $url);} elseif(strpos($url, 'weixinrp1=') !== FALSE) {$url = str_replace('weixinrp1=', 'weixinrp=', $url);}return $url;}
0 0
- 微信oauth2.0,通过snsapi_base获取用户信息bug(可能算是我的场景造成的)
- 利用servlet 实现JAVAWeb访问微信OAuth2.0认证,获取用户信息的实例
- 利用servlet 实现JAVAWeb访问微信OAuth2.0认证,获取用户信息的实例
- PHP---微信OAuth2.0网页授权获取用户信息
- 调用微信OAuth2.0网页授权接口实现用户信息的绑定
- 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联
- OAuth2.0授权(获取用户信息)
- mysql可能造成索引失效的场景
- java通过微信授权获取用户信息
- 基于Springboot的微信公众号接入、通过网页授权机制获取用户信息
- 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联(转:http://playxinz.iteye.com/blog/2249634)
- 微信公众平台开发获取openid-snsapi_base方式
- 微信网页授权获取用户基本信息(snsapi_base)
- 微信开发中的snsapi_base与snsapi_userinfo及静默授权的实现
- 微信开发(七)微信网页授权( Oauth )通过Oauth获取用户信息
- 微信获取用户信息
- 微信获取用户信息
- 微信获取用户信息
- @@@有关Python的优秀博客收集@@
- 指向函数的指针--回调的基础
- SDUT OJ 2449 走迷宫
- Ajax技术简单案例
- java中的枚举以及处理
- 微信oauth2.0,通过snsapi_base获取用户信息bug(可能算是我的场景造成的)
- Java 容器类型的打印
- slf4j+logback
- iOS开发--使用CocoaLumberjack-DDLog
- 算法导论之基础知识
- 前端上传组件Plupload使用指南 与swfupload一样强大
- JSON资料整理
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
- C++ 之EOF