Проблемы с Meteor.js Google Oauth

Я пытаюсь настроить приложение Meteor для использования логинов Google, Вот моя настройка в файле /server/config.js

Accounts.loginServiceConfiguration.remove({
service: "google"
  });


Accounts.loginServiceConfiguration.insert({
service: "google",
clientId: "XXXXXXX",
secret: "XXXXXX"
  });

У меня есть настройка на google, указывающая на localhost: 3000 У меня есть учетные записи - ui и учетные записи - google, установленные в моем приложении meteor.

и я вижу кнопку входа в Google на домашней странице моего приложения, но когда я нажимаю на нее, я получаю:

Error: redirect_uri_mismatch The redirect URI in the request: 
http://localhost:3000/_oauth/google?close 
did not match a registered redirect URI

Ответ 1

Я использую Nitrous.io, так как я разрабатываю Windows. В этой статье объясняется, почему Google видит неправильный URI.

https://github.com/shoebappa/vagrant-meteor-windows/issues/9

В принципе вам нужно запустить метеорит с измененным ROOT_URL, чтобы он не начинался с localhost.

Замените localhost.meteor.com URL-адресом, на котором работает метеорит. ROOT_URL = http://localhost.meteor.com метеор

Ответ 2

Вам необходимо зарегистрировать URL-адрес переадресации с помощью Google APIs Console. Войдите в консоль и проверьте, какой URI перенаправления был настроен. При необходимости добавьте localhost

Update:

Я попробовал сам и добавил

 http://localhost:3000/_oauth/google?close 

в консоли API. Я добавил учетные записи - google и accounts-ui в приложение Hello World и добавил кнопку входа на страницу

<body>
    {{loginButtons}}
    {{> hello}}
</body>

Я согласился на запрашиваемые разрешения при всплывании и был зарегистрирован.

Ответ 3

Другая идея: удалили ли вы автообновление? Если это так, вы должны опубликовать userData, чтобы ваш клиент мог получить доступ к пользователям.

Ответ 4

У меня такая же проблема на https://gotlog.in Когда я помещаю https://gotlog.in/_oauth/google?close в качестве обратного URL-адреса, он стоит:

  1. Это ошибка. Ошибка: invalid_client нет имени приложения

И я положил хороший звонок назад (https://gotlog.in/_oauth/google), как сказано во всплывающем окне настройки, я получаю то же самое:

  1. Это ошибка. Ошибка: redirect_uri_mismatch URI перенаправления в запросе: https://gotlog.in/_oauth/google?close не соответствует зарегистрированному URI редиректа.

Мой корневой URL настроен и действителен, но у меня нет опубликованных userData. Но в документе говорится: "По умолчанию текущее имя пользователя пользователя, электронные письма и профиль публикуются клиенту".

Изменить: нашел решение здесь: https://github.com/meteor/meteor/issues/2717

Мне не хватало информации о экране согласия в консоли api. И да, у URL-адреса обратного вызова должен быть "закрыт" в конце. Viva Meteor =)