[英]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.