在Laravel 5.2中禁用登录

时间:2016-07-27 14:48:15

标签: laravel laravel-5.2

在Laravel 5.2中,我在has_login表中添加了users字段。

如果has_login表中users的值为0,我在哪里添加逻辑以防止用户登录?我使用AuthController.php进行身份验证,并使用use AuthenticatesAndRegistersUsers而不使用AuthController.hp文件中的login() / authenticate()函数。登录工作正常。

2 个答案:

答案 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)