В настоящее время я разрабатываю сервер авторизации Oauth, который позволяет «предоставить код авторизации», и я хотел бы использовать PKCE, потому что я видел, что он может быть в Oauth2.1, и он кажется (немного) более безопасным, чем классический «код авторизации» .
Я также разрабатываю приложение SPA, используя Vue.js в качестве клиента Oauth.
Я сделал первые шаги PKCE: сгенерировал верификатор кода и запрос кода на стороне клиента и отправил запрос GET / авторизации, содержащий client_id, response_type = code, redirect_uri, code_challenge и code_challenge_request.
Мой запрос GET / authorize возвращает код перенаправления 302, которому будет следовать клиентский браузер. На этом этапе из-за перенаправления я теряю свой контекст на стороне клиента и поэтому теряю code_verifier, который мне понадобится в конце потока во время запроса POST / токена.
Поэтому я не понимаю, как использовать поток PKCE с SPA, я ничего не нашел об этом в Интернете, а RFC просто сказал, что следуйте перенаправлению и используйте верификатор кода, и я не знаю, как это сделать.
Я думаю, что могу сохранить этот code_verifier в небезопасном файле cookie, но я надеюсь, что есть лучшее решение.