HwioAuthBundle是一个在symfony2项目中启用社交登录的编写器包:
https://github.com/hwi/HWIOAuthBundle
symfony2文档提供了一个如何在功能测试中模拟身份验证的示例:
http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html
不过,在我的测试中,我并没有成功地让这两个人一起工作。symfony2安全系统指示存在非匿名用户,但我的控制器中的getuser()返回空值。
任何人在这方面都取得了成功,或者有一些关于如何最好地调试或实现的指针?
使用:
符号2-2.6.3
HwioAuthBundle-开发主机-309D802F8DE9F39E30851A145A7FC0DE69B94076
最佳答案
use Liip\FunctionalTestBundle\Test\WebTestCase;
use HWI\Bundle\OAuthBundle\Security\Core\Authentication\Token\OAuthToken;
use HWI\Bundle\OAuthBundle\Security\Core\User\OAuthUser;
class ControllerTest extends WebTestCase
{
public function testSecurity()
{
$client = static::createClient();
$token = new OAuthToken('test', array( 'ROLE_USER', 'ROLE_OAUTH_USER' ));
$user = new OAuthUser('[email protected]');
$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