微信公众号授权登录,部分手机用户一直在重复登录不跳转到正确页面

按照官方来的教程做的微信授权登录微信公众号网站,先提交申请,获得授权后取得assess_token,然后用这个token去获取该客户的所有信息,将信息写入数据库后,就跳转到提交申请的页面(我把$_SERVER['REQUEST_URI']写入到session里了,写入数据库后就header到这个url回来)。

大多数用户都可以正常使用没有问题。问题在于,有少部分用户,大多数是iphone用户,有发现有华为用户,打开页面后一直显示“正在登入中”,上面的绿条一闪而过之后,又重复出现正在登入中,如此不断反复不断反复,始终不能出现正确的页面。

这事已经苦恼了好久好久,不知道有没有碰到过这个问题的或者熟悉微信授权登录的大侠帮忙解读一下?多谢!

阅读 16.2k
6 个回答

微信授权有缓存的,而且有好多很奇妙的问题会出现,你下载个微信开发工具,里面可以单步调试,那个授权的信息什么的都在localstorage里面,就一目了然了,

新手上路,请多包涵

您好,您的这个问题解决了吗?我也遇到了同样的问题

新手上路,请多包涵

您好,您的这个问题解决了吗?我也遇到了同样的问题

新手上路,请多包涵
   //设置默认跳转地址为首页
   //$this->request->domain() 是域名
    $default = $this->request->domain() . '/mobile/index/index.html';
    //获取来源地址,如果来源地址为null/不存在时,默认跳转到首页
    $HTTP_REFERER = $this->request->server('HTTP_REFERER', $default);
    //检测是否已经存储来源地址,备注:因为当前页面会刷新两次,第一次是未获取code,第二次为获取code的页面,且第二次来源地址为微信所以第二次不考虑
    $session_url=Session::get('HTTP_REFERER');
    //判断来源网站是否是当前站点且未存储来源地址
    if (strpos($HTTP_REFERER, $this->request->domain()) !== false&&!$session_url) {
                    //保存来源地址
                    Session::set('HTTP_REFERER', $HTTP_REFERER);
                }
                
                /**
               code..
                */
                //回调完成后删除来源地址以防定向错误
                 Session::delete('HTTP_REFERER');
新手上路,请多包涵

多的我也不说了!看看自己的服务器是不是开启了openssl,没开启openssl就会出现一直登录循环!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题