Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 6/7/8/9/10 » Аутентификация API из другой таблици » 21.09.2021 20:22:57

Sergio000
Ответов: 0

Добрый вечер.
Делаю аутентификацию без стороних пакетов. Использую свою таблицу Admins вместо Users.
Метод Login:

    public function Login(Request $request)
    {
      $this->validate($request, [
        'login' => 'required',
        'password' => 'required|min:8'
      ]);

      $auth = Auth::attempt([
        'login' => $request->login, 
        'password' => $request->password
      ]);

      if($auth){
        $token = auth()->user()->createToken();
        return response()->json(['token' => $token], 200);
      }else {
        return response()->json(['error' => 'Unauthorised'], 401);
      }
    }

Файл auth.php:

   'guards' => [
        'web-admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],

        'api-admin' => [
            'driver' => 'token',
            'provider' => 'admins',
        ]
    ],

При таком подходе Laravel берет даные с таблици Users, если же я указываю:

Auth::guard('api-admin')->attempt([$login, $pass]);

Ошибка: "Call to undefined method Illuminate\\Auth\\TokenGuard::attempt()"
Как мне сделать Аутентификацию API, чтобы даные логин и пароль брались с другой таблици?
Писать все в ручную, искать в таблице и сверять потом?

Подвал раздела