Meteor.js Google Oauth issues

旧巷老猫 提交于 2019-12-20 12:40:13

问题


I am trying to setup my Meteor app to use Google logins, Here is my setup in the /server/config.js file

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


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

I have the setup on google pointed to localhost:3000 I have accounts-ui and accounts-google installed on my meteor app.

and I see the google login button on my app's homepage but when I click it I get:

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

回答1:


I'm using Nitrous.io since I am developing on Windows. This article explains why google sees the wrong URI.

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

Basically you need to launch meteor with a modified ROOT_URL so that it doesn't start with localhost.

Replace localhost.meteor.com with the URL that meteor is actually running at. ROOT_URL=http://localhost.meteor.com meteor




回答2:


You have to register the redirect URL with Google's APIs Console. Log on to the console and check what redirect URI was set up. Add localhost if necessary

Update:

I tried it myself and added

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

in the API console. I added accounts-google and accounts-ui to the Hello World app and added the login button to the page

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

I agreed to the requested permissions in the pop up and was logged in.




回答3:


Another idea : Did you removed the autopublish ? If so, you must publish the userData so your client can access to Users.




回答4:


I have the same problem on https://gotlog.in When I put https://gotlog.in/_oauth/google?close as the call back URL it get worth :

  1. That’s an error. Error: invalid_client no application name

And whe I put the good call back (https://gotlog.in/_oauth/google) as said in the setup popup I get the same :

  1. That’s an error. Error: redirect_uri_mismatch The redirect URI in the request: https://gotlog.in/_oauth/google?close did not match a registered redirect URI.

My root URL is setup and valid, but I have no userData published. But the documantation says : "By default, the current user's username, emails and profile are published to the client."

Edit: found the solution here : https://github.com/meteor/meteor/issues/2717

I was missing the consent screen information in the api console. And yes the callback URL has to have the '?close' at the end. Viva Meteor =)



来源:https://stackoverflow.com/questions/17960606/meteor-js-google-oauth-issues

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!