Подтвердить что ты не робот

Как добавить несколько URI перенаправления для Google OAuth 2?

Я пытаюсь выполнить проверку подлинности Google OAuth 2 с игрушечным приложением, которое я запускаю на своем компьютере (в localhost:8080), используя Social Auth для Java.

Однако, когда мое приложение подключается к Google для аутентификации пользователя, Google отвечает на эту страницу с ошибкой:

enter image description here

Мое приложение под названием "Приложение для моего хобби" настроено в консоли разработчика как таковое:

enter image description here

В Google OAuth 2 документах указано, что:

redirect_uri: одно из значений redirect_uri, перечисленных для этого проекта в Консоли разработчиков.

Определяет, куда отправляется ответ. значение этого параметра должно точно соответствовать одному из указанных значений для этого проекта в Google Developers Console (включая http или https, case и trailing '/').

У меня есть пара вопросов:

  • Как добавить несколько redirect_uri в мое приложение?
  • Почему Google идентифицирует мое приложение как "Учетная запись службы по умолчанию для проекта", а не "Приложение для моего хобби"?
4b9b3361

Ответ 1

На самом деле это проще, чем вы думаете, к сожалению, мне потребовалось пару часов, чтобы понять это.

Как добавить несколько redirect_uris в мое приложение?

Обычно, когда вы добавляете несколько ссылок на что-либо в Google или в другом месте, вы разделяете его на , или ;, но с URI Redirect вы должны использовать новую строку, это на самом деле не очень интуитивно. Поэтому, когда вы нажимаете кнопку Edit Settings, вы можете добавить в URI и/или Origins, если у вас есть еще несколько ссылок, разделенных символами новой строки (enter).

Нет необходимости в сложных конфигурациях приложений или новых ключах.

image

Почему Google идентифицирует мое приложение как "Учетная запись службы по умолчанию для проекта", а не "Приложение для моего хобби"?

По второму вопросу: вам нужно перейти на вкладку "Согласие экрана", чтобы изменить информацию о вашем приложении, например, PRODUCT NAME, HOMEPAGE, LOGO и т.д.

Ответ 2

Этот ответ может быть не точным ответом на вопрос, но я думаю, что это может помочь тем, кто впервые использует Google OAuth, и задаются вопросом, почему их множественные URI не распознаются.

Мы используем URI перенаправления в 2 местах в коде. Первый раз, когда вы извлекаете код auth и второй раз, при обмене этим кодом на токен доступа.

В Документах Google четко указано, что ответ на запрос кода авторизации (1-й запрос) будет отправлен в URI перенаправления, Итак, если вы сделаете запрос от конечной точки A и укажите rediredt URI в качестве конечной точки B, Google отправит код auth в конечную точку B. Это ясно и отлично работает без каких-либо ошибок.

Следуя второму запросу, документация несколько неоднозначна. Параметр redirect_URI описан ниже:

redirect_uri: URI, указанный вами в API-консоли, как описано в Set URI перенаправления.

Вот где я ошибся в понимании того, как это работает. Следуя аналогичному подходу к первому вызову, я использовал третью конечную точку C и передал эту конечную точку C в параметре redirect_URI во время второго вызова. Я получил ошибку несоответствия URI, хотя мои конечные точки B и C указаны в консоли API.

Проблема заключается в том, что, в отличие от первого вызова, ответ на второй вызов приходит к той же конечной точке, откуда сделан запрос. Я сделал запрос в python, как показано ниже:

r = requests.post(token_endpoint, params)

r имеет ответ с токеном.

Я получал несоответствие URI, потому что я должен использовать один и тот же redirect_URI в обоих вызовах.

Итак, для одного запроса OAuth нам нужно использовать один redirect_URI.

Но тогда возникает вопрос, почему несколько разрешений redirect_URI разрешены в консоли API для одного приложения. Я предполагаю, что если нам нужно сделать несколько пар вызовов authCode-токенов в одном приложении, у нас есть свобода использования нескольких redirect_URI.