HWIOAuthBundle如何在控制器中获取用户数据?

时间:2017-02-07 07:24:07

标签: oauth symfony

在这个doc中存在$ response变量 https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/internals/response_object_and_paths.md

但我不明白,$控制器是如何回应的。

请帮忙!请举个例子!

1 个答案:

答案 0 :(得分:1)

您必须实现自己的自定义用户提供程序,它将使用HWIOAuthBundle来加载用户的数据(例如,类似于您希望从自己的SQL表加载用户)。

以下是一个很好的例子:https://gist.github.com/danvbe/4476697

Symfony的文档How to Create a custom User Provider

修改

控制器无法访问您的UserProvider所访问的HWIOAuthBundle的UserResponseInterface,因此如果您想访问控制器中用户的realName,则必须通过用户实体进行访问。

用户提供商:

...
public function loadUserByOAuthUserResponse(UserResponseInterface $response)
{
    $userEmail = $response->getEmail();
    $user = $this->userManager->findUserByEmail($userEmail);

    // if null just create new user and set it properties
    if (null === $user) {
        $realName = $response->getRealName();
        $user = new User();
        $user->setRealName($realName);
...

控制器:

...
public function defaultAction(Request $request)
{
    $this->getUser()->getRealName();
...