laravel 8 中的电子邮件验证后如何更改重定向?
how to change redirect after auth Email verification in laravel 8?
邮箱验证成功注册后,我有2个条件。
- 如果新用户select计划从主页重定向到注册页面提交表单。然后将获得电子邮件验证 link,电子邮件验证后我想直接重定向到结帐。 Plan id 将保存 session ,所以我可以得到计划的所有细节。
- 如果新用户不是select主页计划,那么他可以注册并重定向到仪表板
但在 laravel 中,电子邮件验证后总是重定向到主页。但是我不想再重定向到主页了。
如何做到这一点?哪里可以做编码部分?
验证控制器
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
protected function verified(Request $request)
{
$request->session()->flash('alert','Your Email is verfied');
}
路线
public function emailVerification()
{
return function () {
$this->get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
$this->get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify');
$this->post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
};
}
据我所见,两人接近...
在您将它们路由到的控制器操作中
Auth\VerificationController@verify 进行检查以确保标记
尚未设置,设置标志,如果未设置,请将您的重定向
在那个逻辑之后。所以对于路线来说应该是这样的...
return redirect()->route('route.name', [$veriYouWantToSendAlong]);
或者到有错误的静态页面。
return redirect()->route('page/name')->withErrors(['Some error here']);
- 在你的 Laravel 授权控制器中应该是受保护的 $redirectTo = '/home';操作,您可以将其更改为仪表板或登录后您想发送给他们的任何地方。
添加一个名为 redirectTo()
的方法。存在就会调用
public function redirectTo()
{
// put your routing logic here
}
函数应该return一个字符串url去。
邮箱验证成功注册后,我有2个条件。
- 如果新用户select计划从主页重定向到注册页面提交表单。然后将获得电子邮件验证 link,电子邮件验证后我想直接重定向到结帐。 Plan id 将保存 session ,所以我可以得到计划的所有细节。
- 如果新用户不是select主页计划,那么他可以注册并重定向到仪表板
但在 laravel 中,电子邮件验证后总是重定向到主页。但是我不想再重定向到主页了。
如何做到这一点?哪里可以做编码部分?
验证控制器
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
protected function verified(Request $request)
{
$request->session()->flash('alert','Your Email is verfied');
}
路线
public function emailVerification()
{
return function () {
$this->get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
$this->get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify');
$this->post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
};
}
据我所见,两人接近...
在您将它们路由到的控制器操作中 Auth\VerificationController@verify 进行检查以确保标记 尚未设置,设置标志,如果未设置,请将您的重定向 在那个逻辑之后。所以对于路线来说应该是这样的...
return redirect()->route('route.name', [$veriYouWantToSendAlong]);
或者到有错误的静态页面。
return redirect()->route('page/name')->withErrors(['Some error here']);
- 在你的 Laravel 授权控制器中应该是受保护的 $redirectTo = '/home';操作,您可以将其更改为仪表板或登录后您想发送给他们的任何地方。
添加一个名为 redirectTo()
的方法。存在就会调用
public function redirectTo()
{
// put your routing logic here
}
函数应该return一个字符串url去。