Authorization Code Flow с PKCE отличается от других вариантов тем, что предназначен для аутентификации публичных клиентских приложений (например, нативных и мобильных). 2
Этот поток использует доказательство обмена ключом (PKCE), который применяется для публичных клиентов, потому что у них нет секрета, и они не могут самостоятельно пройти аутентификацию. 2
Основное отличие заключается в том, что PKCE заменяет секрет клиента, используемый в стандартном Authorization Code Flow, на одноразовый код вызова (code challenge). 3 Это значит, что клиентскому приложению не нужно хранить секрет клиента. 3
При использовании Authorization Code Flow с PKCE клиент генерирует случайное значение (codeverifier) и вычисляет хэш (codechallenge). 4 Затем клиент передаёт codechallenge на конечную точку авторизации. 4 При обмене токеном клиент отправляет codeverifier на сервер авторизации. 4 Сервер пересчитывает хэш и проверяет, соответствует ли он исходному code_challenge, чтобы проверить идентичность клиента. 4