OAuth и нативные приложения приносят некоторую сложность.Это связано с тем, что нативные приложения работают изначально, а OAuth использует браузер для завершения процесса.Во-первых, я приглашаю вас взглянуть на некоторые другие вопросы и ответы , где обсуждались технологии, связанные с нативными приложениями.
С точки зрения протокола, PKCE сделал обязательным.Это обсуждается в рамках нового RFC ( draft-ietf-oauth-security-themes-12 ), который скоро будет доступен.С PKCE вы не потеряете код авторизации для вредоносного приложения, которое запускается на компьютере конечного пользователя.
Причина этого заключается в том, что с сервера авторизации он использует только идентификатор клиента и URL-адрес перенаправления для идентификации правильного клиента.Таким образом, если ответ авторизации будет перехвачен, любая сторона может получить токены.PKCE избегает этого, вводя безопасный случайный секрет, который генерируется во время выполнения.Это не сохраняется и передается только в том виде, в каком оно есть в запросе токена, который защищен SSL.Следовательно, PKCE уменьшает вектор угрозы для кражи токенов.
Для нативных приложений регистрация пользовательской схемы URL является идеальным способом получения ответа авторизации.И, как указывают спецификации, объедините его с PKCE.