Простыми словами
Например, мобильное приложение запускает вход в системном браузере; перехвативший callback код не сможет получить токен без verifier. Поэтому правило проверяют ещё на этапе проектирования - иначе одна удобная лазейка может превратиться в доступ, которого у пользователя или процесса быть не должно.
Пример при разработке
Мобильное приложение запускает вход в системном браузере; перехвативший callback код не сможет получить токен без verifier.
Это редакционный пример применения, а не часть определения или доказательство концепции.Формальное определение
PKCE связывает код авторизации с одноразовым секретом клиента и мешает обменять перехваченный код без verifier.
Механизм действия
Клиент создаёт code_verifier, отправляет code_challenge, а token endpoint проверяет их соответствие.
Пример в работе
Внедрить «PKCE для OAuth 2.0» как формальную настройку, не проверив сценарий отказа и ограничение: PKCE не заменяет проверку redirect URI, state/nonce и защиту самого устройства.
Применять «PKCE для OAuth 2.0» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.
Ограничения
PKCE не заменяет проверку redirect URI, state/nonce и защиту самого устройства.
Источник
IETF, “Proof Key for Code Exchange by OAuth Public Clients”, 2015.