在Laravel 5.2中,我在has_login
表中添加了users
字段。
如果has_login
表中users
的值为0,我在哪里添加逻辑以防止用户登录?我使用AuthController.php进行身份验证,并使用use AuthenticatesAndRegistersUsers
而不使用AuthController.hp文件中的login()
/ authenticate()
函数。登录工作正常。
答案 0 :(得分:1)
我个人倾向于在中间件中执行此操作,但您也可以在此之外执行此操作。
这是一个中间件示例:
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RequireHasLogin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check())
{
if (!Auth::guard($guard)->user()->has_login)
{
Auth::logout();
if ($request->ajax() || $request->wantsJson())
{
return response('Unauthorized.', 401);
}
return redirect()->guest('/auth/login');
}
}
return $next($request);
}
}
虽然我认为有些人也会这样做:
Auth::guard()->attempt(["email" => $email, "password" => $password, "has_login" => true])
答案 1 :(得分:0)