Laravel 5.7,带驾驶员护照的API,can';t在登录时添加验证
我有两个应用程序使用相同的数据库 一个是在PHP5.6和Laravel5.3中,它是一个完整的Laravel应用程序,带有视图,js,都在Laravel中 PHP7.1和Laravel5.7中的另一个(它用作ReactJS应用程序的API) 在旧版本中,我的Laravel 5.7,带驾驶员护照的API,can';t在登录时添加验证,laravel,laravel-5,Laravel,Laravel 5,我有两个应用程序使用相同的数据库 一个是在PHP5.6和Laravel5.3中,它是一个完整的Laravel应用程序,带有视图,js,都在Laravel中 PHP7.1和Laravel5.7中的另一个(它用作ReactJS应用程序的API) 在旧版本中,我的LoginController我重写了身份验证用户的方法: protected function validateLogin(Request $request) { $this->validate( $reque
LoginController
我重写了身份验证用户的方法
:
protected function validateLogin(Request $request)
{
$this->validate(
$request,
[
'email' => 'required|exists:users,email,active,1|exists:users,email,access_oldmaster,1',
'password' => 'required'
],
[
'email.exists' => 'El nombre de usuario es incorrecto o la cuenta se encuentra deshabilitada.'
]
);
}
此版本的config/auth.php
文件中包含以下内容:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
验证工作正常。我正在尝试在较新版本上实现相同的验证:
'email' => 'required|exists:users,email,active,1|exists:users,email,access_oldmaster,1',
但较新版本的配置中有此驱动程序
(请记住,此版本是API):
因此,我尝试与旧版本相同,使用相同的validateLogin
方法重写LoginController
,但API没有使用它
我如何在API中使用该验证?正如我在这里读到的:
我将此方法放在我的用户
模型中:
public function validateForPassportPasswordGrant($password)
{
// $this->what_ever_user_propertie
if ($this->active != true) {
throw OAuthServerException::accessDenied('The account is not active');
}
return \Hash::check($password, $this->password);
}
检查您的路由文件。默认情况下,
api/oauth/token
route发出访问令牌。哪种控制器方法颁发访问令牌?您必须在该方法上添加验证。我的路由使用中间件auth:api
public function validateForPassportPasswordGrant($password)
{
// $this->what_ever_user_propertie
if ($this->active != true) {
throw OAuthServerException::accessDenied('The account is not active');
}
return \Hash::check($password, $this->password);
}