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