首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测第一次FOSFacebookBundle登录

检测第一次FOSFacebookBundle登录
EN

Stack Overflow用户
提问于 2014-01-03 11:20:08
回答 1查看 193关注 0票数 0

我用FOSFacebookBundle成功地实现了FOSUserBundle。一切都很好。

现在,我希望能够检测到用户与FOSFacebookBundle的第一个连接。

我有一个FacebookAuthenticationSuccessHandler,每次Facebook认证成功时都会调用它,但我想声明一种"FirstFacebookAuthenticationSuccessHandler",只有在用户还不存在的情况下才会这样做。该处理程序的目标是能够向每个新用户发送一封欢迎电子邮件。

对于典型的注册,我只使用一个RegistrationSuccessListener。

你知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-03 13:56:09

在我找到解决方案的时候回答我自己的问题。

1/我创建(并注册)了一个名为NewFacebookUserListener的新事件侦听器:

代码语言:javascript
复制
...

/**
 * {@inheritDoc}
 */
 public static function getSubscribedEvents()
 {
      return array(
          MyCustomEvents::NEW_FACEBOOK_USER => 'onNewFacebookUser'
      );
 }

 public function onNewFacebookUser(UserEvent $event)
 {
      // we get the user
      $user = $event->getUser();

      // and now you can do what you wish
 }

2/在我的FacebookProvider (位于Security/User/Provider下)中,我添加了几行来分派这个新事件:

代码语言:javascript
复制
$user->setFBData($fbdata);

// we send a "FB user created" event
$dispatcher = $this->container->get('event_dispatcher');
$dispatcher->dispatch(MyCustomEvents::NEW_FACEBOOK_USER, new UserEvent($user, $this->container->get('request')));

正如预期的那样,只有在创建了新的Facebook用户时,才会发送事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20902444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档