Laravel 5 用户激活
Laravel 5 User activation
我有一个奇怪的问题,我无法解决。
当用户注册时,我将他们重定向到提要 url,打开模式并告诉我的用户通过单击我发送给他们的电子邮件 link 来激活他的帐户。但是在我点击 link 之后,我一直被重定向到完全相同的页面(提要)并且我的帐户没有被激活。这可能是什么问题?
routes.php
Route::group(['namespace' => 'Auth'], function ()
{
Route::group(['middleware' => 'auth'], function ()
{
Route::get('activate/{token}', 'PasswordController@activate');
});
});
密码控制器
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);
}
假设您使用 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 用户在登录后将被重定向。因为那里有 feed 会将用户重定向到要求他们激活的页面每次登录都有帐户。
在您的密码控制器的激活功能中,没有关于激活用户后应该做什么的逻辑。在 $activation->save()
之后添加以下行
Auth::login($activation);
return redirect('/');
我有一个奇怪的问题,我无法解决。
当用户注册时,我将他们重定向到提要 url,打开模式并告诉我的用户通过单击我发送给他们的电子邮件 link 来激活他的帐户。但是在我点击 link 之后,我一直被重定向到完全相同的页面(提要)并且我的帐户没有被激活。这可能是什么问题?
routes.php
Route::group(['namespace' => 'Auth'], function ()
{
Route::group(['middleware' => 'auth'], function ()
{
Route::get('activate/{token}', 'PasswordController@activate');
});
});
密码控制器
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);
}
假设您使用 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 用户在登录后将被重定向。因为那里有 feed 会将用户重定向到要求他们激活的页面每次登录都有帐户。
在您的密码控制器的激活功能中,没有关于激活用户后应该做什么的逻辑。在 $activation->save()
之后添加以下行Auth::login($activation);
return redirect('/');