【发布时间】:2017-02-07 16:30:49
【问题描述】:
在这个文档中存在 $response 变量 https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/internals/response_object_and_paths.md
但我不明白,$response 是如何到达控制器的。
请帮忙!请举个例子!
【问题讨论】:
在这个文档中存在 $response 变量 https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/internals/response_object_and_paths.md
但我不明白,$response 是如何到达控制器的。
请帮忙!请举个例子!
【问题讨论】:
您必须实现自己的自定义用户提供程序,它将使用 HWIOAuthBundle 来加载用户的数据(例如,就像您想从自己的 SQL 表中加载用户一样)。
这是一个很好的例子:https://gist.github.com/danvbe/4476697
还有 Symfony 的文档 How to Create a custom User Provider
编辑
控制器无权访问HWIOAuthBundle的UserResponseInterface,你的UserProvider有,所以如果你想访问控制器中用户的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();
...
【讨论】: