文档章节

symfony2 HWIOAuthBundle QQ登录问题

汤汤圆圆
 汤汤圆圆
发布于 2015/08/02 10:43
字数 275
阅读 182
收藏 0

现行版本 HWIOAuthBundle QQ 登录会出现问题

最近在用HWIOAuthBundle 做第三方QQ登录 会出现bug;就追源码 发现存在一些问题; 估计HWIOAuthBundle没有及时更新;github上还是两年前的;

// HWI\Bundle\OAuthBundle\OAuth\ResourceOwner\QQResourceOwner.php;

   /**
     * {@inheritDoc}
     */
    public function getUserInformation(array $accessToken = null, array $extraParameters = array())
    {
    
        /*
         * 这是原来的;他调用normalizeUrl 方法生成一个URL
        $url = $this->normalizeUrl($this->options['infos_url'], array(
            'oauth_consumer_key' => $this->options['client_id'],
            'access_token'       => $accessToken['access_token'],
            'openid'             => $openid,
            'format'             => 'json',
        ));
        //在这他直接把生成好的URL(带参数的);我们可以追到doGetUserInformationRequest的写法  return $this->httpRequest($url, http_build_query($parameters, '', '&')); http_build_query()问题就在这 当parameters为空时他返回的是空字符串不是null;我们在看 httpRequest的方法判断  $method = null === $content ? HttpRequestInterface::METHOD_GET : HttpRequestInterface::METHOD_POST;
就可知道 $method应该是post;而qq互联官网getUserInfo 是需要get方式访问的;
         $response = $this->doGetUserInformationRequest($url);
        */

        .....
    }

正确的写法

    public function getUserInformation(array $accessToken = null, array $extraParameters = array())
    {
        $openid = isset($extraParameters['openid']) ? $extraParameters['openid'] : $this->requestUserIdentifier($accessToken);

        $url = $this->options['infos_url'];
        $params = array(
            'oauth_consumer_key' => $this->options['client_id'],
            'access_token'       => $accessToken['access_token'],
            'openid'             => $openid,
            'format'             => 'json',
        );
  $response = $this->doGetUserInformationRequest($url, $params);

其实就是一个get,post 请求方法的改变

© 著作权归作者所有

汤汤圆圆

汤汤圆圆

粉丝 11
博文 78
码字总数 25113
作品 0
昌平
程序员
私信 提问
关于使用symfony2开发时遇到的一个诡异的bug

问题描述 最近在使用symfony 2开发,处于刚入门阶段。昨天完成了注册登录模块,开发阶段一直没有问题,快完成时诡异的错误出现了:注册成功后,查询数据表,记录存在,但登录始终报错。由于登...

Lucups
2013/10/18
0
0
深入浅出Symfony2 - 如何提高网站响应速度

简介 Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快、性能高等特点。但Symfony2的学习曲线也比较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性。相对其他框架,Symfony...

丰圣谋
2013/07/30
0
1
Symfony2 Cookbook (版本 2.7.0 LTS) 中文版

Symfony2 是一个基于 MVC 模式的面向对象的 PHP5 框架,有着开发速度快、性能高等特点。Symfony 的目的是加速 Web 应用的创建与维护。它的特点如下: 缓存管理 自定义 URLs 搭建了一些基础模...

起名字凡人
2015/11/24
1K
3
人才网站程序--HRWare

HRWare采用 Symfony2 框架和 Twitter Bootstrap 3 实现的人才网站程序,招聘企业可以很方便的发布职位,用户可以直接投递简历,还可以使用 oauth 协议登录。 支持PC访问和手机访问(响应式设...

匿名网友
2013/12/06
3.6K
2
symfony3的中文视频教程更新中(原创),对SF感兴趣的童鞋可以看下

本课程总共通过《实战》《淬炼》《大师》,三个子课程来详细的讲解Symfony3框架。实战篇主要通过一个用户文章管理系统使学员初步掌握SF3应用的开发技能。淬炼通过通过一个大型的B2C电子商务网...

翁宇杰
2016/07/20
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

C++的变量初始化

C++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。 1、默认初始化:默认初始化是指定义变量时没有指定初值时进行的初始化操作。 如:int a;...

天王盖地虎626
30分钟前
0
0
MySQL-入门(一)

一、SQL的分类 DDL(Data Definition Language):数据定义语言,用来操作数据库对象:库、表、列等; DML(Data Manipulation Language):数据操作语言,用来增删改数据库中的数据; DCL(...

潜行-L
32分钟前
1
0
微服务架构在Kubernetes上的实现

我们讨论了最近的微服务趋势,以及伴随微服务架构可能出现的一些复杂问题。在接下来的几周内,我们将深入探讨这个问题。我们将探讨不同设计选择中固有的权衡,以及可以采取哪些措施来缓解这些...

别打我会飞
34分钟前
3
0
IDEA2018导入eclipse web项目

看别人的攻略:https://blog.csdn.net/qq_33229669/article/details/83751316 完成之后,出现了IDEA编译java报错:找不到符号_的解决方法错误, 然后百度出来是编码问题, 1.更改editor的文件编码...

流光韶逝
48分钟前
3
0
NIO 学习

比如 socket 通信, 服务的的 socket 对应的 线程会一直等待 client 端的 消息。 这就是bio的 阻塞 。而且在高并发下 很容易出现问题。 1, 非阻塞式IO模型、 2. 弹性伸缩能力强(服务的的接...

之渊
51分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部