繁体   English   中英

(显然)成功登录后,Meteor.user为null

[英]Meteor.user is null after (apparently) successful login

我有一个简单的Meteor js应用程序,它允许您创建用户帐户并登录,或者通过oauth(由于accounts-google软件包)使用现有的Google帐户登录。

使用该应用程序时,我输入了用户名和密码,一切正常。 但是,当我单击“使用Google登录”时,google oauth弹出窗口要求我选择我要用于该登录的Google帐户。 我选择了帐户,弹出窗口等待一秒钟,然后关闭,然后什么都没有发生。 没有弹出窗口被阻止,没有“登录失败”消息。 好像什么都没有发生。

我确定使用oauth登录时永远不会定义用户,因为Meteor.user()在JS控制台中为我提供了null

这可能是怎么回事? 或者我该如何调试呢? 建议表示赞赏。

ps如果需要任何其他信息,我可以补充。

您可能在Meteor端或Google Developers Console端弄乱了oauth配置,因此这里有个简短的回顾。

Google Developers Console:

在“ API和身份验证>凭据”下,在OAuth部分中创建一个新的客户端ID。

选择Web应用程序,并指定正确的重定向URI和JavaScript来源:

重定向尿RIS

http://localhost:3000/_oauth/google?close
http://your-production-domain.com/_oauth/google?close

JAVASCRIPT起源

http://localhost:3000
http://your-production-domain.com

流星配置:

确保添加以下软件包:

meteor add accounts-google
meteor add service-configuration

在server / config.js中,从http://docs.meteor.com/#meteor_loginwithexternalservice添加这些行

ServiceConfiguration.configurations.remove({
  service: "google"
});
ServiceConfiguration.configurations.insert({
  service: "google",
  clientId: "????????????????.apps.googleusercontent.com",
  secret: "????????????????"
});

应将clientId和secret字段设置为Google Developers Console中的字段。

然后在您的登录表单的点击处理程序中调用Meteor.loginWithGoogle() ,它应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM