Аутентификация JWT / Laravel

#php #laravel #jwt #jwt-auth

#php #laravel #jwt #jwt-аутентификация

Вопрос:

Я новичок в Laravel, я создал страницу входа в систему для своего серверного приложения (оно работает нормально), а затем я создал документацию JWT для установки и начала использования (https://jwt-auth.readthedocs.io/en/develop /). В моих контроллерах я использовал после:

 public function __construct()
{
    $this->middleware('auth:api', ['except' => ['login']]);
}
 

Теперь каждый раз, когда я пытаюсь ввести свой тот же логин, я не могу.
Как я могу теперь ввести свой логин с помощью JWT?

Комментарии:

1. Сегодня вы можете сделать $this->middleware('auth')->except(['login'])

Ответ №1:

Если вы используете Laravel 8, новый рекомендуемый маршрут — использовать функцию Sanctum от Laravel:

https://laravel.com/docs/8.x/sanctum

Для этого, если вам нужны логины с отслеживанием состояния, вы просто отправляете сообщение на любой контроллер, который затем выполняет вызов Auth::attempt следующим образом:

 class AuthController extends Controller
{
    /**
     * Store a newly created resource in storage.
     *
     * @param Request $request
     * @throws ValidationException
     */
    public function store(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);

        $credentials = $request->only('email', 'password');
        if (!Auth::attempt($credentials, true)) {
            throw ValidationException::withMessages([
                'email' => ['The provided credentials are incorrect.'],
            ]);
        }
    }
}
 

Недавно я успешно настроил свою систему входа в систему на React, используя этот пакет:

https://github.com/koole/react-sanctum

Для лиц без гражданства вы можете ознакомиться с документацией здесь:

https://laravel.com/docs/8.x/sanctum#api-token-authentication

Комментарии:

1. Я не могу использовать Sanctum, я должен использовать аутентификацию JWT. Моя проблема в том, что я не знаю, как войти в свой логин после того, как я использовал документацию по аутентификации JWT.

2. Где ввести свой логин?