Сервер OAuth2 выдает код авторизации после аутентификации пользователя и после того, как пользователь подтверждает согласие на делегирование прав клиенту (обозначено client_id
).Код авторизации затем отправляется в качестве параметра на зарегистрированный URI перенаправления клиента.Так что я не знаю, что вы подразумеваете под «любой может получить код авторизации» .
Публичные клиенты должны использоваться с расширением PKCE OAuth2.Который служит одноразовым паролем.Таким образом, даже если код авторизации будет украден, его нельзя заменить на токены, не зная параметра code_verifier
конечной точки токена.
Если злоумышленник создает вредоносное приложение, используя чужой client_id (притворяясь клиентом), код авторизации будет по-прежнему отправляться на URL-адрес перенаправления клиента.Если злоумышленник завладеет этим обработчиком URL-адреса, это, вероятно, является проблемой, выходящей за рамки протокола OAuth2.