Laravel 5.3 附加条件认证
Laravel 5.3 Authentication with additional condition
Laravel 5.3 发生了一些变化。在文档中有这个控制器,我们可以在其中添加我们的附加条件:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate()
{
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}
但是这个控制器:AuthController 不存在了.....
只有 LoginController
我应该创建那个 AuthController 还是什么?
所以问题是如何为用户增加一个登录条件
'active' => 1
您可以使用 5.3 中的 LoginController
。做你想做的事情的一种方法是覆盖 sendLoginResponse()
方法并在它的开头添加这样的东西:
if (!auth()->user()->active) {
auth()->logout();
return redirect('/');
}
如果用户不活动,这将注销他并将他重定向到根目录。这将工作是 active
是布尔值。
您可以在 LoginController 中指定一个 additional condition,例如 'active' = 1:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate(Request $request)
{
$email = $request->input('email');
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}
Laravel 5.3 发生了一些变化。在文档中有这个控制器,我们可以在其中添加我们的附加条件:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate()
{
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}
但是这个控制器:AuthController 不存在了..... 只有 LoginController
我应该创建那个 AuthController 还是什么?
所以问题是如何为用户增加一个登录条件
'active' => 1
您可以使用 5.3 中的 LoginController
。做你想做的事情的一种方法是覆盖 sendLoginResponse()
方法并在它的开头添加这样的东西:
if (!auth()->user()->active) {
auth()->logout();
return redirect('/');
}
如果用户不活动,这将注销他并将他重定向到根目录。这将工作是 active
是布尔值。
您可以在 LoginController 中指定一个 additional condition,例如 'active' = 1:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate(Request $request)
{
$email = $request->input('email');
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}