Laravel 5 Laravel 5.3:如何仅对活动用户进行身份验证

Laravel 5 Laravel 5.3:如何仅对活动用户进行身份验证,laravel-5,Laravel 5,我想删除5.3登录用户表status='Active',但status='Inactive'无法登录 请帮帮我。谢谢大家 您可以这样尝试: if (Auth::attempt(['email' => $email, 'password' => $password, 'status' => 'Active'])) { // The user is active, not suspended, and exists. } 您可以这样尝试: if (Auth::attemp

我想删除5.3登录用户表status='Active',但status='Inactive'无法登录

请帮帮我。谢谢大家

您可以这样尝试:

if (Auth::attempt(['email' => $email, 'password' => $password, 'status' => 'Active'])) {
    // The user is active, not suspended, and exists.
}
您可以这样尝试:

if (Auth::attempt(['email' => $email, 'password' => $password, 'status' => 'Active'])) {
    // The user is active, not suspended, and exists.
}

转到\vendor\laravel\framework\src\illumb\Foundation\Auth\AuthenticatesUsers.php 然后更改凭据函数。 请参阅此链接

示例函数链接

受保护的功能凭据(请求$Request) { $crendentials=$request->only($this->username(),'password'); $crendentials['status']='Active'; 返回$crendentials;
}

转到\vendor\laravel\framework\src\illumb\Foundation\Auth\AuthenticatesUsers.php 然后更改凭据函数。 请参阅此链接

示例函数链接

受保护的功能凭据(请求$Request) { $crendentials=$request->only($this->username(),'password'); $crendentials['status']='Active'; 返回$crendentials;
}在Auth/LoginController.php中添加此函数

use Illuminate\Http\Request;

protected function credentials(Request $request)
{
    return [
        $this->username() => $request->get($this->username()),
        'password' => $request->get('password'),
        'active' => 1
    ];
}
通过这样做,实际上可以覆盖它。此函数位于AuthenticatesUsers特性中

获得相同结果的另一种方法是通过添加

use Illuminate\Http\Request;
use Illuminate\Validation\Rule;

protected function validateLogin(Request $request)
{
    $this->validate($request, [
        $this->username() =>  [
            'required',
            Rule::exists('users')->where(function ($query) {
                $query->where('active', 1);
            }),
        ], 
        'password' => 'required',
    ]);
}

在Auth/LoginController.php中将此函数添加到LoginController.php

use Illuminate\Http\Request;

protected function credentials(Request $request)
{
    return [
        $this->username() => $request->get($this->username()),
        'password' => $request->get('password'),
        'active' => 1
    ];
}
通过这样做,实际上可以覆盖它。此函数位于AuthenticatesUsers特性中

获得相同结果的另一种方法是通过添加

use Illuminate\Http\Request;
use Illuminate\Validation\Rule;

protected function validateLogin(Request $request)
{
    $this->validate($request, [
        $this->username() =>  [
            'required',
            Rule::exists('users')->where(function ($query) {
                $query->where('active', 1);
            }),
        ], 
        'password' => 'required',
    ]);
}
到LoginController.php

的可能副本
use Illuminate\Http\Request;

protected function credentials(Request $request)
{
    return [
        $this->username() => $request->get($this->username()),
        'password' => $request->get('password'),
        'active' => 1
    ];
}