У меня есть две разные модели, и мне нужно аутентифицировать каждую.
Первая модель работает нормально, что предопределено в config/auth.php
но когда я пытаюсь установить конфигурацию для второй модели, это не работает.
У меня есть следующий код для второй модели:
public function loginParent(Request $request)
{
Config::set('auth.providers.users.model', ChildrenParent::class);
$credentials = $request->only('email', 'password');
try {
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
return response()->json(['error' => 'could_not_create_token'], 500);
}
return response()->json(compact('token'));
}
И код для auth.php:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Employee::class,
],
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
Я проверил, и он работает нормально, если я изменю название модели в auth.php.
Ошибка: всегда возвращаются «неверные учетные данные».
редактировать
Тест показывает, что модель успешно изменена следующим образом:
Config::set('auth.providers.users.model', ChildrenParent::class);
return Config::get('auth.providers.users.model');
return
оператор возвращает второй класс модели, но почему я всегда получаю неверные учетные данные?
Редактировать:
ChildrenParent
использует следующие черты и интерфейсы:
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Auth\Authenticatable as AuthenticableTrait;
use Tymon\JWTAuth\Contracts\JWTSubject as AuthenticatableUserContract;
Задача ещё не решена.
Других решений пока нет …