【已结案】qq第三方登陆,灵异事件

@Ta 05-13 18:53 296点击
第一次是由 PHPCurl的GET请求返回结果,
第二次用相同的URL,人工浏览器请求。
效果不一样

  1.   public function query()
  2.     {
  3.         $code=$this->code;
  4.         $url='https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id='.$this->app_id.'&client_secret='.$this->secret.'&code='.$code.'&redirect_uri='.urlencode($this->oauth_redirect_uri);
  5.  
  6.         echo    '请求接口:'.htmlspecialchars($url);
  7.         $result=  $this->curl($url,null);
  8.         echo "<br>".'请求结果:'.$result;
  9.         if(strpos('access_token=',$result)===false)
  10.         {
  11.             return ['errorcode'=>1,'errormsg'=>'无效的接口返回'];
  12.         }
  13.  
  14.         $access_token=substr($result,strlen('access_token=')-1,strpos('&',$result));
  15.         echo $access_token;
  16.     }

回复列表(6)
  • 1
    Hik
    @Ta / 05-10 08:57
    报错信息不明写着么,标志代码被重用错误
  • 3
    @Ta / 05-10 13:05
    CODE本来就只能用一次
  • 4
    @Ta / 05-10 14:23
    @水木易安@Hik,看清楚,code第一次使用是phpcurl,但是第二次同样的参数用人工浏览器访问code才被激活,说明第一次php curl code激活失败
  • 5
    Hik
    @Ta / 05-10 15:44
    @猫腻王子,嗦嘎
  • 6
    @Ta / 05-13 18:53
    找到原因,
    QQ的Oauth2.0接口不许接收POST,
    上述动作中,curl设定了POST,虽然传入参数为NULL,但是应该是这个原因。导致QQ网关 拦截器层,并未进入逻辑层 直接返回一个结果
    注意的坑:关闭curl的post,直接使用纯GET请求
添加新回复
回复需要登录

[聊天-公共聊天室] 老子会游泳:1้้้