Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5添加另一个参数以检查登录_Laravel_Laravel 5 - Fatal编程技术网

Laravel 5添加另一个参数以检查登录

Laravel 5添加另一个参数以检查登录,laravel,laravel-5,Laravel,Laravel 5,我正在使用Laravel5.3,并使用make:auth构建注册/登录系统。我想知道除了检查用户名和密码是否对应于匹配的DB行之外,如何添加另一个参数来检查登录 编辑:我试着在线查看,我发现我可以在Auth::trument行中更改它,但这些都是针对Laravel 5.2及以下版本的。LoginController具有以下功能: use AuthenticatesUsers; protected $redirectTo = '/home'; public function __constru

我正在使用Laravel5.3,并使用
make:auth
构建注册/登录系统。我想知道除了检查用户名和密码是否对应于匹配的DB行之外,如何添加另一个参数来检查登录

编辑:我试着在线查看,我发现我可以在Auth::trument行中更改它,但这些都是针对Laravel 5.2及以下版本的。LoginController具有以下功能:

use AuthenticatesUsers;

protected $redirectTo = '/home';

public function __construct()
{
    $this->middleware('guest', ['except' => 'logout']);
}
据我所知,这会重定向到中间件
RedirectIfAuthenticated
,但该中间件如下所示:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/home');
    }

    return $next($request);
}

我几乎可以肯定,我必须添加一个自定义防护,但即使在我在线查看的文档中,也有点让人困惑。。有人能很好地解释这一点吗?或者可能是一个示例代码?

是的,您可以通过在LoginController.php中重写
AuthenticatesUsers
的方法来实现

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}
这个例子是最常见的用例,用户只有在其帐户处于活动状态时才能登录


如果要使用其他表而不是
用户
,则需要

在config/auth.php中添加一个

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}
然后,将其添加到您的LoginController.php

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}

如文档中所述,您也可以在
RegisterController
ResetPasswordController
中使用相同的方法。

是的,您可以通过在LoginController.php中重写
AuthenticateUsers
的方法来实现

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}
这个例子是最常见的用例,用户只有在其帐户处于活动状态时才能登录


如果要使用其他表而不是
用户
,则需要

在config/auth.php中添加一个

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}
然后,将其添加到您的LoginController.php

use Illuminate\Http\Request;

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

    return $returnArray;
}
'guards' => [
    'user' => [
        ...
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

...

'providers' => [
    'users' => [
        ...
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],
use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('customer');
}

按照文件规定,您也可以在
注册表控制器
重置密码控制器
中使用相同的设置post@AndyHolmes我编辑了post,但是在哪里可以将查询更改为从另一个表中选择而不是从
用户中选择?但是在哪里可以将查询更改为从另一个表中选择而不是从其他表中选择
用户