Laravel 5.7 - 如何在用户未登录时显示电子邮件验证重定向页面?
Laravel 5.7 - How can I show email verification redirect page when the user is not logged in?
Laravel版本:5.7.10
PHP版本:7.2.10
数据库驱动程序和版本:MySql 8.0.11
我让新用户验证他们的电子邮件地址,然后再向他们发送首次登录凭据。他们收到验证电子邮件,并且验证有效。但是,他们之后应该重定向到的页面没有出现。而是出现主页。下次他们登录时,他们将进入 post-验证页面。路由上没有设置auth中间件,我在未登录的情况下可以正常到达post-验证页面
我在 VerificationController 中使用 protected $redirectTo = '/verified' 设置了重定向页面。这是有效的,直到用户登录。
通过 github 中的问题。只需更改
$this->middleware('auth');
到
$this->middleware('auth')->except('verify');
根据 luminoslty 的评论更改中间件,并将 VerifiesEmail.php 从
更改为
public function verify(Request $request)
{
if ($request->route('id') == $request->user()->getKey() &&
$request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return redirect($this->redirectPath())->with('verified', true);
}
至
public function verify(Request $request)
{
$user = User::find($request->route('id'));
if ($user) {
$user->markEmailAsVerified()) {
event(new Verified($user));
}
return redirect($this->redirectPath())->with('verified', true);
}
Laravel版本:5.7.10 PHP版本:7.2.10 数据库驱动程序和版本:MySql 8.0.11
我让新用户验证他们的电子邮件地址,然后再向他们发送首次登录凭据。他们收到验证电子邮件,并且验证有效。但是,他们之后应该重定向到的页面没有出现。而是出现主页。下次他们登录时,他们将进入 post-验证页面。路由上没有设置auth中间件,我在未登录的情况下可以正常到达post-验证页面
我在 VerificationController 中使用 protected $redirectTo = '/verified' 设置了重定向页面。这是有效的,直到用户登录。
通过 github 中的问题。只需更改
$this->middleware('auth');
到
$this->middleware('auth')->except('verify');
根据 luminoslty 的评论更改中间件,并将 VerifiesEmail.php 从
更改为public function verify(Request $request)
{
if ($request->route('id') == $request->user()->getKey() &&
$request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return redirect($this->redirectPath())->with('verified', true);
}
至
public function verify(Request $request)
{
$user = User::find($request->route('id'));
if ($user) {
$user->markEmailAsVerified()) {
event(new Verified($user));
}
return redirect($this->redirectPath())->with('verified', true);
}