簡體   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