2015-05-29 53 views
2

我想使用AngularFire從Google OAuth獲取電子郵件地址,但在彈出窗口中,它並不要求獲得電子郵件許可。AngularFire Google OAuth不檢索用戶的電子郵件

這是Firebase Google auth doc

var ref = new Firebase("https://<your-firebase>.firebaseio.com"); 
ref.authWithOAuthPopup("google", function(error, authData) { /* Your Code */ }, { 
    scope: "email" 
}); 

它工作在我的角度應用程序的代碼,但我怎麼能解決我的角度代碼,這樣做?

var ref = new Firebase("https://<your-firebase>.firebaseio.com"); 
var auth = $firebaseAuth(ref); 
auth.$authWithOAuthPopup("google").then(function(authData) { 
    /* Code */ 
}).catch(function(error) { 
    console.error("Authentication failed:", error); 
}); 

Link to the same problem with answer,但我沒有得到答案,以及如何解決它。

+0

同樣來自同一文檔,以供參考:'authData.google.email'包含了谷歌用戶的主電子郵件地址作爲上市他們的檔案。僅當有效的電子郵件地址可用時才返回,並且Google電子郵件許可權由用戶授予。 – Kato

回答

3

您是否嘗試傳遞選項?

var ref = new Firebase("https://<your-firebase>.firebaseio.com"); 
var auth = $firebaseAuth(ref); 
auth.$authWithOAuthPopup("google", { scope: 'email' }).then(function(authData) { 
    /* Code */ 
}).catch(function(error) { 
    console.error("Authentication failed:", error); 
}); 

正如加藤指出,該文件提供的信息,以及:link

+0

似乎是正確的選擇。也在[API文檔](https://www.firebase.com/docs/web/libraries/angular/api.html)中提到。 – Kato

+0

謝謝@Kato我更新了我的答案以反映文檔。 –

相關問題