@maximrabotaet

Как правильно заставить работать remember me если для авторизации запрос уходит в json формате?

Здравствуйте!
Написал свой аутентификатор (...extends AbstractGuardAuthenticator) для ajax запроса который отправляется с формы логина с данными в json:
{
    "username": "...",
    "password": "...",
    "_csrf_token": "...",
    "_remember_me": true
}

Метод supportsRememberMe возвращает true.
В методе getCredentials декодирую json, заполняю и возвращаю $credentials:
public function getCredentials(Request $request): array
    {
        $jsonRequest = json_decode($request->getContent(),  true);
        
        $credentials = [
            'username' => $jsonRequest['username'],
            'password' => $jsonRequest['password'],
            'csrf_token' => $jsonRequest['_csrf_token'],
        ];
        //$request->request->set('_remember_me', $jsonRequest['_remember_me']);
        $request->getSession()->set(
            Security::LAST_USERNAME,
            $credentials['username']
        );

        return $credentials;
    }

Пользователь авторизуется, но remember me не срабатывает, а если в getCredentials у $request установить _remember_me: true, то все работает:
$request->request->set('_remember_me', $jsonRequest['_remember_me']);

Но думаю getCredentials не совсем подходящее место для этого.
Как и где по правильному можно переопределить параметр _remember_me при аутентификации в этом случае?
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы