2015-10-03 114 views
0

我有一个奇怪的问题,我无法解决。Laravel 5用户激活

当用户注册后,我将它们重定向到一个供稿网址,打开一个模式,并通过点击我发送给他们的电子邮件链接来通知我的用户激活他的帐户。但是当我点击链接后,我仍然被重定向到完全相同的页面(feed),并且我的账户没有被激活。这里可能是什么问题?

routes.php文件

Route::group(['namespace' => 'Auth'], function() 
{ 
    Route::group(['middleware' => 'auth'], function() 
    { 
     Route::get('activate/{token}', '[email protected]'); 
    }); 
}); 

PasswordController

public function activate($token) { 
    //get token value. 
    // find the user that belongs to that token. 
    $activation = User::where("confirmation_code", $token)->get()->first(); 
    $activation->confirmed = 1; 
    $activation->save(); 
} 

RedirectIfAuthenticated.php如果我删除提要URL,它的工作原理。但我不想这样做。

public function handle($request, Closure $next) 
{ 
    if ($this->auth->check()) { 

     return redirect('/feed'); 
    } 

    return $next($request); 
} 
+0

你能发布所有的路由吗?例如,我现在甚至都没有看到路径文件中的'/ feed'。 – djt

回答

1

假设您使用laravel默认身份验证系统。请执行下列操作。

在您的AuthController中添加该方法。这将创建用户,但不会将其登录,因为他们尚未激活其帐户。请注意,laravel将自动登录用户,因此下面的函数将覆盖默认行为。

public function postRegister(Request $request) 
{ 
    $validator = $this->validator($request->all()); 

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 
    $this->create($request->all()); 
    return redirect('/feed'); 
} 

在RedirectIfAuthenticated.php删除'/feed',而是有一个URL哪些用户如果登录重定向。由于具有进料会有用户重定向到网页,要求他们激活帐号有每次登录的时间。

在您的密码控制器的激活功能中,没有关于一旦激活用户应该做什么的逻辑。在$ activation-> save()之后添加以下行:

Auth::login($activation); 
return redirect('/');