Php Laravel 5.6点击激活链接仅重定向至主页

Php Laravel 5.6点击激活链接仅重定向至主页,php,laravel-5.6,laravel-passport,Php,Laravel 5.6,Laravel Passport,我正在研究电子邮件激活和密码忘记的Laravel 5.6。我在注册后成功发送电子邮件,或在输入用户电子邮件后单击忘记密码按钮。但是,一旦用户在电子邮件中单击激活链接并且其帐户处于登录状态,网站将重定向到主页(127.0.0.1:8000),而不是执行激活或重置pw操作 此处的示例(电子邮件激活): 点击激活电子邮件中的链接(127.0.0.1:8000/register/activate/{sometokenhere}),只会进入主页本身(127.0.0.1:8000) 在RegisterCo

我正在研究电子邮件激活和密码忘记的Laravel 5.6。我在注册后成功发送电子邮件,或在输入用户电子邮件后单击忘记密码按钮。但是,一旦用户在电子邮件中单击激活链接并且其帐户处于登录状态,网站将重定向到主页(127.0.0.1:8000),而不是执行激活或重置pw操作

此处的示例(电子邮件激活):

点击激活电子邮件中的链接(127.0.0.1:8000/register/activate/{sometokenhere}),只会进入主页本身(127.0.0.1:8000)


在RegisterController.php中

...
protected function create(array $data)
{
    $user = User::create([
        'name'     => $data['name'],
        'email'    => $data['email'],
        'password' => bcrypt($data['password']),
        'activate'   => 0,
        'activation_token' => str_random(60),   
    ]);
    $user->notify(new SignupActivate($user));   
    return $user;
}

public function register(Request $request)
{
    $this->validator($request->all())->validate();
    $this->guard()->login($this->create($request->all()));
    return redirect()->to($this->redirectTo); //homepage
}

public function signupActivate($token)
{
    $user = User::where('activation_token', $token)->first();
    if (!$user) {
        return response()->json([
            'user' => $user,
            'token' => $token,
            'message' => 'This activation token is invalid.'
        ], 404);
    }
    $user->active = 1;
    $user->activation_token = '';
    $user->save();
    return $user;
}
...
在Notification/SignupActivate.php中

...
public function via($notifiable)
{
    return ['mail'];
}

public function toMail($notifiable)
{
    $url = url('/register/activate/'.$notifiable->activation_token);

    $name = $this->user->name;
    $email = $this->user->email;
    return Mail::send('activate', ['name'=>$name, 'url'=>$url], function($message) use($email, $name){
    $message->to($email, $name)
        ->from('test@test.com', 'Admin')
        ->subject('Activate your account');            
    });
}
...
相关路线

Route::group(['namespace' => 'Auth'], function () {
    Route::get('/register/activate/{token}', 'RegisterController@signupActivate'); //added
 });
激活.blade.php

Hi {{$name}},<br><br>
This email is a confirmation email.<br>
<a href={{$url}} data-method="delete">Activation link</a>
Hi{{$name},

此电子邮件为确认电子邮件。

我对拉拉维尔很陌生。我想知道是路由问题、会话问题(?)还是其他什么问题。我不确定我对自己的处境解释得是否足够清楚。。我只能在用户帐户注销的情况下激活该帐户(单击activatoin链接的结果将返回json字符串到屏幕)。我只是在RedirectAuthenticated.php中这样注释行:if(Auth::guard($guard)->check(){//return redirect('/');}它似乎工作正常,但这样做有风险吗?