我遇到了一个可能会让一些用户感到困惑的问题:
我在我的应用程序中使用Firebase
来存储用户数据等,为了保护用户的数据,我使用Google Authentication
中的内置。我知道我可以在这个登录过程中定义scopes
,用户可以/应该允许,但我注意到你不能要求所有的谷歌范围/服务,(所有都内置Firebase
功能)
所以我也必须使用Google JS Library
进行身份验证,以访问存储在Google
上的其余用户数据(我想在我的Web应用程序中显示用户)。
如果Google signin popup
显示两次,一次是对Firebase
的身份验证,另一次是针对Google API's
的身份验证。
我的问题是,有没有办法,也许在Firebase signin process
移交access_token
(反之亦然),我没有两次的用户签名,而Google popup
只出现一次?
您可以使用从Google auth返回的令牌调用authWithOAuthToken
:请参阅https://www.firebase.com/docs/web/api/firebase/authwithoauthtoken.html.从那里:
此方法接受OAuth凭据(如OAuth 2.0承载访问令牌)或对象(如一组OAuth 1.0a凭据)的单个字符串参数。使用OAuth令牌登录Facebook、GitHub和Google只需要一个字符串访问令牌:
// Authenticate with Facebook using an existing OAuth 2.0 access token
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithOAuthToken("facebook", "<ACCESS-TOKEN>", function(error, authData) {
if (error) {
console.log("Login Failed!", error);
} else {
console.log("Authenticated successfully with payload:", authData);
}
});
文档中的示例使用了facebook,但谷歌代币也是如此。