redirect_uri_mismatch URI перенаправления в запросе не совпадает с авторизованным для клиента OAuth - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть следующий секрет клиента

{
  "web": {
    "client_id": "testid",
    "project_id": "testproj",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://www.googleapis.com/oauth2/v3/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "test-sec",
    "redirect_uris": [
      "https://localhost:8080/oauth2callback"
    ]
  }
}

, и я получаю

"Ошибка: redirect_uri_mismatch URI перенаправления в запросе, http://127.0.0.1:8414/authorize/, не совпадаетавторизованные для клиента OAuth.

Чтобы обновить авторизованные URI перенаправления, посетите: ".Не могли бы вы подсказать, как это исправить.

Я использую C #.Я создал учетные данные с этим -

GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, scopes,
                                             "user",
                                              CancellationToken.None, 
                                              new FileDataStore(Directory.GetCurrentDirectory() + "\\AccessToken\\" , 
                                             true)).Result; 

Но в первый раз, он появился при входе в систему, и как только я вошел в систему, он создал файл Google.Apis.Auth.OAuth2.Responses.TokenResponse-user в папке.Есть ли способ обойти первый вход в систему?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 августа 2019

Когда вы создаете свои учетные данные в https://console.developers.google.com:

Credentials

После нажатия на Create credentials, выбрав OAuth client ID:

Create credentials

Выберите «Другое» в качестве типа приложения:

Create OAuth client ID.

У вас должен быть этот формат учетных данных:

{
  "installed": {
    "client_id": "...",
    "project_id": "...",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "...",
    "redirect_uris": [
      "urn:ietf:wg:oauth:2.0:oob",
      "http://localhost"
    ]
  }
}

Теперь ваша ссылка OAuth2 должна работать независимо от вашего порта в параметре redirection_uri, например, http://localhost:8414 (с 8414 в качестве случайного порта).И у вас больше нет этой ошибки:

Ошибка: redirect_uri_mismatch URI перенаправления в запросе http://localhost:8414/authorize/, не совпадает с авторизованным для клиента OAuth.

0 голосов
/ 08 декабря 2018

URI перенаправления - это URL, по которому вы хотите, чтобы Google вернул аутентификацию.Это должен быть файл, который вы настроили для обработки ответа Oauth.

Когда вы создавали свой проект в консоли разработчика Google, вы должны были предоставить URI перенаправления в Google, в котором указано, откуда вы будете отправлять и кудаВы хотите, чтобы ответ был возвращен.

"Ошибка: redirect_uri_mismatch URI перенаправления в запросе http://127.0.0.1:8414/authorize/, не соответствует тем, которые разрешены для клиента OAuth.

означает, что выотправка с http://127.0.0.1:8414/authorize/, однако это не один из URI перенаправления, который вы добавили в консоль разработчика Google. Вернитесь на консоль разработчика и добавьте http://127.0.0.1:8414/authorize/ или http://localhost:8414/authorize/, вам может или не может понадобиться окончание /.

Обходной логин

Вам необходимо понять, что большинство данных API Googles являются частными данными пользователя. Чтобы получить доступ к частным данным пользователя, необходимо получить согласиепользователь, которому это принадлежит. Мы используем Oauth2, чтобы запросить у пользователя согласие на доступ нашего приложения к их данным. Невозможно передать согласие oauth2.

К сожалению, другого способа доступа к YouTube нет.api. Если вы хотите получить доступ к личным данным пользователя, вам всегда нужно будет хотя бы один раз запросить у пользователя согласие, а затем сохранить учетные данные, как вы это делаете сейчас.хранилище данных синг файла.

...