最近自己又犯了低级错误了,我这里是做用户进入个人中心的微信授权,开发框架tp6,一直跳转的原因一般都是我们自己的重定向问题:
1、重定向次数过多,导致code多次使用。
这个问题的解决方法是添加:connect_redirect=1
详细添加方法:
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$WX_APPID.'&redirect_uri='.$redirectUrl.'&response_type=code&connect_redirect=1&scope=snsapi_userinfo&state=STATE#wechat_redirect';
header("Location:".$url);
die;
2、自身请求问题,说白了就是自己写错了,或者逻辑没有处理好,我这里是session默认值,本人瓜兮兮的将用户id的默认值设置成了“0”。我的程序逻辑是用户第一次进入系统,我们拉取授权,获取用户openid并进行查询,看当前用户是否注册,已注册,这个时候的id肯定是正常的数值,未注册,进入注册页面,这里我的注册相关控制器头部我写了是否登录的验证,也就是验证session中是否有id这个值,结果我给未注册的新用户设置了一个默认id等于0,然后就悲剧了,看看我打印的结果:
Session::delete("userinfo");
Session::set("userinfo.us_id",0);
if(empty(Session::get("userinfo.us_id"))){
echo 'no';
}else{
echo 'yes';
}
die;
//输出
no
输出了no,然后改了默认值为英文字母,打印结果:yes,到这里我秒懂了,empty函数验证0时,会默认返回true,自己犯的低级错误……