加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在Symfony2功能测试中通过HWIOAuth模拟认证?

发布时间:2020-12-13 16:41:08 所属栏目:PHP教程 来源:网络整理
导读:HWIOAuthBundle是在Symfony2项目中进行社交登录的作曲家乐曲: https://github.com/hwi/HWIOAuthBundle Symfony2文档给出了在功能测试中如何模拟认证的示例: http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html 虽然我没有成
HWIOAuthBundle是在Symfony2项目中进行社交登录的作曲家乐曲:

https://github.com/hwi/HWIOAuthBundle

Symfony2文档给出了在功能测试中如何模拟认证的示例:

http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html

虽然我没有成功地让这两个人在一起工作,Symfony2安全系统表示有一个非匿名用户,但我的Controllers中的getUser()返回null.

任何人都有这样的成功,或者有一些关于如何最好地调试或实现的指针?

使用:

Symfony2 – 2.6.3
> HWIOAuthBundle – dev-master – 309d802f8de9f39e30851a145a7fc0de69b94076

use LiipFunctionalTestBundleTestWebTestCase;
use HWIBundleOAuthBundleSecurityCoreAuthenticationTokenOAuthToken;
use HWIBundleOAuthBundleSecurityCoreUserOAuthUser;

class ControllerTest extends WebTestCase
{
    public function testSecurity()
    {
        $client = static::createClient();
        $token = new OAuthToken('test',array( 'ROLE_USER','ROLE_OAUTH_USER' ));
        $user = new OAuthUser('test@test.com');
        $token->setUser($user);
        $session = $client->getContainer()->get('session');
        $session->set('_security_name_of_your_firewall',serialize($token));
        $session->save();
        $cookie = new Cookie($session->getName(),$session->getId());
        $client->getCookieJar()->set($cookie);

        // $client now acts as authenticated client

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读