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
答案 0 :(得分:2)
您可以在5.3中使用LoginController
。做你想做的事情的一种方法是覆盖sendLoginResponse()
方法并在它的开头添加这样的东西:
if (!auth()->user()->active) {
auth()->logout();
return redirect('/');
}
这将注销用户他是否处于非活动状态并将其重定向到根目录。这将起作用active
是布尔值。
答案 1 :(得分:0)
您可以在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');
$email = $request->input('email');
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}