我一直在寻找这个,但找不到答案。
预期行为:
- 用户进入产品页面
- 用户想要购买产品,所以他需要登录/注册(使用模态(
- 用户没有帐户,因此他注册
- 注册后(没有电子邮件确认(,用户登录并重定向到当前产品页面
- 用户可以继续结帐等...
此行为适用于登录,在表单中使用 _target_path
参数。
但是,此参数不适用于注册。这有点烦人,我在哪里错过了什么?我正在考虑在注册成功事件上实现侦听器,但不像登录表单那么简单似乎真的很奇怪。
编辑:找到我的解决方案,请参阅下面的我自己的答案
回答那些想知道的人。
TL;DR :注册过程不遵循登录的
感谢@yceruto的评论。
我在REGISTRATION_SUCCESS
事件中做了一个快速的监听:
/**
* @param FormEvent $event
*/
public function redirectOnRegistration(FormEvent $event)
{
$route = $event->getRequest()->headers->get('referer', $this->router->generate('homepage'));
$response = new RedirectResponse($route);
$event->setResponse($response);
}
(如果没有推荐人,我会在主页上重定向(。
在安全设置中,您必须打开引用:
firewalls:
dev:
pattern: ^/(_(profiler|wdt|console)|css|images|js)/
security: false
main:
pattern: ^/any_pattern
anonymous: ~
form_login:
login_path: any_pattern_login
check_path: any_pattern_login
use_referer: true
logout: true
access_denied_handler: app.security.access_denied_handler
guard:
authenticators:
- app.api_authenticator
provider: api_provider
logout:
path: any_pattern_logout
invalidate_session: true