Hi , i get this error message :
BadMethodCallException
Method Illuminate\Auth\RequestGuard::attempt does not exist.
when i use Auth::guard('client')
it works only with 'driver' => 'session' not passport i don't understand why so how to fix it ?
config/auth.php
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'administrator',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'administrator',
],
'client' => [
'driver' => 'passport',
'provider' => 'client',
],
'administrator' => [
'driver' => 'passport',
'provider' => 'administrator',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\administrator::class,
],
'administrator' => [
'driver' => 'eloquent',
'model' => App\administrator::class,
],
'client' => [
'driver' => 'eloquent',
'model' => App\Client::class,
]
]
];
app/Http/Controllers/Api/ClientController.php
public $successStatus = 200;
/**
* login
*
* @return \Illuminate\Http\Response
*/
public function login(Request $request){
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required|min:6',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
if(Auth::guard('client')->attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::guard('client');
$success['token'] = $user->createToken('MyApp')->accessToken;
return response()->json(['success' => $success], $this->successStatus);
}
else{
return response()->json(['error'=>'Email or password incorrect'], 401);
}
}
Thank you in advance