我正在使用 FosUserBundle 来处理我的应用程序登录/注册工作流程。然后我需要在注册时获取用户的纯密码,因为我想使用grant_type=password
带有 FOSOAuthServer 包的工作流生成访问令牌。
我尝试了以下事件:
FOSUserEvents::REGISTRATION_INITIALIZE
: 这里没有密码FOSUserEvents::REGISTRATION_SUCCESS
:普通密码但数据库中没有用户,因为此事件在用户创建之前被调用FOSUserEvents::REGISTRATION_COMPLETED
: 在数据库中创建了用户,但是$event->getUser()->getPlainPassword()
返回 null,因为在创建用户时方法$userManager->updatePassword()
将plainPassword
属性设置为 null
您对我该如何处理有任何安全的想法吗?我有主要想法,但我不确定这是否是正确的方法:
- 将密码放入会话
FOSUserEvents::REGISTRATION_SUCCESS
并生成访问令牌,然后删除密码FOSUserEvents::REGISTRATION_COMPLETED
- 覆盖用户管理器类以使该方法
$userManager->updatePassword()
不调用$userManager->eraseCredentials()
并在注册时使用它(不知道怎么做)
干杯伙计们:)