传递参数 HWIOAuthbundle symfony2
Pass parameter HWIOAuthbundle symfony2
我正在尝试从我的 Facebook 和 Google 登录按钮传递一个 GET 参数,这是我使用 HWIOAuthbundle 设置的。我看过这个问题:,但是我不太明白他是如何让它工作的。他提到使用 referer,我对此一无所知 - 而且我没有足够的声誉 post 对这个问题发表评论...
我在想这样的事情:
<a href="{{ path('google_login',{'datakey':1}) }}">Link</a>
但是如何在我的 FOSUBUserProvider 中检索它?
感谢所有帮助!
我终于成功了。但是,我不确定这是最好的方法。在我找到更合适的解决方案之前,这是一个快速修复。
当有人使用 datakey 变量作为 $_GET 参数进入我的网站时,我使用该值设置了一个 cookie。当用户登录时,FOSUBUserProvider 检查是否设置了datakey cookie;如果是,它会做它的事情。
这是我目前能做的最好的事情,因为我还没有成功地通过 hwioauthbundle 将参数发送到我的 FOSUBUserProvider。
如果有人找到更好的解决方案,请告诉我!
无需设置cookie。只需先设置一个会话变量(在控制器中):
$session->set('role', 'ROLE_CLIENT');
然后,在您的 UserProvider 中注入会话(在 services.yaml 中):
app.user.oauth_provider:
class: App\Security\Core\User\AppUserProvider
arguments: ['@doctrine', { google: googleId, facebook: facebookId, apple: appleId }, '@session']
public: true
最后,获取你的UserProvider中的变量,使用它,然后清除它:
$role = $this->session->get('role');
if ($role) {
$user->addRole($role);
$this->session->set('role', null);
}
我正在尝试从我的 Facebook 和 Google 登录按钮传递一个 GET 参数,这是我使用 HWIOAuthbundle 设置的。我看过这个问题:
我在想这样的事情:
<a href="{{ path('google_login',{'datakey':1}) }}">Link</a>
但是如何在我的 FOSUBUserProvider 中检索它? 感谢所有帮助!
我终于成功了。但是,我不确定这是最好的方法。在我找到更合适的解决方案之前,这是一个快速修复。
当有人使用 datakey 变量作为 $_GET 参数进入我的网站时,我使用该值设置了一个 cookie。当用户登录时,FOSUBUserProvider 检查是否设置了datakey cookie;如果是,它会做它的事情。
这是我目前能做的最好的事情,因为我还没有成功地通过 hwioauthbundle 将参数发送到我的 FOSUBUserProvider。
如果有人找到更好的解决方案,请告诉我!
无需设置cookie。只需先设置一个会话变量(在控制器中):
$session->set('role', 'ROLE_CLIENT');
然后,在您的 UserProvider 中注入会话(在 services.yaml 中):
app.user.oauth_provider:
class: App\Security\Core\User\AppUserProvider
arguments: ['@doctrine', { google: googleId, facebook: facebookId, apple: appleId }, '@session']
public: true
最后,获取你的UserProvider中的变量,使用它,然后清除它:
$role = $this->session->get('role');
if ($role) {
$user->addRole($role);
$this->session->set('role', null);
}