我需要做一个身份验证:一个用于表中的Web(用户)……和两个身份验证:用于另一个表中的API(user_api)……在Web Laravel中使用make:auth的用户可以正常工作。所以我在注册时使用的是JWT for API,它工作正常,并给了我一个令牌,但在登录时却给我一个错误
BadMethodCallException:方法[guard]不存在。在文件中 C:\ Users \ Ahmed \ Desktop \ project 419行上的web \ laravel_pro \ vendor \ tymon \ jwt-auth \ src \ JWT.php
这是控制器
public function login(Request $request){
$credentials = $request->only('phone', 'password');
try {
if (!$token =JWTAuth::guard('users_api')->attempt($credentials)){
return response()->json(['error' => 'invalid_credentials'], 400);
}
} catch (JWTExcption $e) {
return response()->json(['error' => 'could_not_create_token'], 500);
}
return response()->json(compact('token'));
}
这是配置
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'users_api' => [
'driver' => 'token',
'provider' => 'users_api',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'users_api'=>[
'driver' => 'eloquent',
'model' => App\User_api::class,
],