微信授权登录
2017-05-19 18:02
204 查看
1.微信授权登录注意项:【在微信公众后台只设置了js安全域名,而没有开启服务器配置,就是验证服务器这个接口】
授权分为snsapi_base和snsapi_userinfo
现在有一个这样的场景,用户扫码而且用户必须授权才能进入。但是这样会有一个问题,就是每次刷新一个页面都需要进行授权操作,而且还要维护redirect_uri,显然这样是不合理的
解决1:可以在授权之后进行缓存,然后在缓存制定期内不需要进行重复授权。问题:在iOS微信中测试,用户强制关闭进程之后,就会出现cookie丢失,所以再次进入的时候要要提示授权!显然这样体验也不好。
解决2:微信授权有一个snsapi_base,但是个好像如果用户第一次扫码,会出现授权失败,但是可以先snsapi_userinfo授权,然后就可以使用snsapi_base授权,这样解决了cookie丢失问题(先snsapi_base授权,如果失败snsapi_userinfo授权)
授权分为snsapi_base和snsapi_userinfo
现在有一个这样的场景,用户扫码而且用户必须授权才能进入。但是这样会有一个问题,就是每次刷新一个页面都需要进行授权操作,而且还要维护redirect_uri,显然这样是不合理的
解决1:可以在授权之后进行缓存,然后在缓存制定期内不需要进行重复授权。问题:在iOS微信中测试,用户强制关闭进程之后,就会出现cookie丢失,所以再次进入的时候要要提示授权!显然这样体验也不好。
解决2:微信授权有一个snsapi_base,但是个好像如果用户第一次扫码,会出现授权失败,但是可以先snsapi_userinfo授权,然后就可以使用snsapi_base授权,这样解决了cookie丢失问题(先snsapi_base授权,如果失败snsapi_userinfo授权)
function __construct() { parent::__construct(); $this->load->model('wx_message_board/Wx_message_board_model', 'Wx_message_board'); $this->my_model = $this->Wx_message_board; // 第一种snsapi_userinfo授权 if (!isset($_SESSION['openid'])) { if (!isset($_GET['code'])) { $redirect_uri = curPageURL() . $_SERVER['REQUEST_URI']; //snsapi_base $this->my_model->getAuthorizationCode($redirect_uri, 'snsapi_base'); } else { $info = $this->my_model->getAuthorizationUserInfo(); if (isset($info['openid'])) { $_SESSION['openid'] = $info['openid']; $_SESSION['nickname'] = $info['nickname']; } } } if (!isset($_SESSION['openid'])) { // 这个授权是防止snsapi_base授权失败 $redirect_uri = curPageURL() . $_SERVER['REQUEST_URI']; $this->my_model->getAuthorizationCode($redirect_uri); die; } }
相关文章推荐
- 基于第三方微信授权登录的iOS代码分析
- vue 微信授权登录解决方案
- 微信qq,新浪等第三方授权登录的理解
- 详解Vue微信授权登录前后端分离较为优雅的解决方案
- 微信授权登录流程
- 个人网站可以申请微信授权登录吗?
- 微信 静默 授权登录 获取openid 实现方法
- 微信小程序获取手机号授权用户登录功能
- 微信授权登录
- 微信授权登录
- 微信第三方授权登录之Android app应用
- 微信分享及授权登录
- 微信坑-网页授权登录errcode=48001,errmsg=api unauthorized
- 基于第三方微信授权登录的iOS代码分析
- 基于第三方微信授权登录的iOS代码分析
- Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息
- iOS App 友盟授权登录后,如何获取微信unionid
- Vue微信项目按需授权登录策略实践思路详解
- 三方登录友盟 sso授权集成微信、QQ、微博方法,及各个平台注册
- 微信开放平台授权登录(java版)