gpt4 book ai didi

javascript - 在不调用 Facebook API 的情况下将 Facebook 链接到 Firebase Anonymous Auth

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:57:00 25 4
gpt4 key购买 nike

我在我的 Firebase 应用程序中创建匿名 session ,以便在用户创建帐户之前保存用户数据。 I saw that Firebase allows linking a Facebook login to an anonymous account这听起来真的很巧妙,但是这个过程的一个警告似乎是我必须自己获取 Facebook token ,在令人敬畏的 Firebase API 的温暖和舒适之外,考虑到如何奇怪地未开发Firebase 的大部分登录流程似乎都是代表应用程序完成的。

如何连接匿名帐户的代码示例 from their account linking docs :

var credential = firebase.auth.FacebookAuthProvider.credential(
response.authResponse.accessToken);

自然是想用Firebase的方式获取token

var provider = new firebase.auth.FacebookAuthProvider();

firebase.auth().signInWithPopup(provider).then(function(result) {
// result.token or whatever would appear here
});

但如果我要运行它,我将丢失我的匿名 session (以及我的匿名用户 ID,我们希望新的 Facebook 登录使用它)。

有没有办法从 Firebase 的身份验证机制中获取 Facebook token ,而无需让用户登录并丢失我试图转换为 Facebook 可登录帐户的匿名 session ? (目标是不必自己调用 Facebook API,尤其是因为我也会在此处添加 Google)

最佳答案

我认为您正在寻找 #linkWithPopup#linkWithRedirect :

var provider = new firebase.auth.FacebookAuthProvider();

user.linkWithPopup(provider).then(function(result) {
console.log('Party 🎉');
});

如果出于某种原因无法解决问题,您可以随时选择自己做:

  • 匿名登录用户,并将用户存储在某处
  • 使用提供者登录用户并将 token 存储在某处
  • 删除提供商用户,然后将帐户与 token 相关联

快速而肮脏的例子:

var googleToken;
var anonUser;

firebase.auth().signInAnonymously().then(function(user) {
anonUser = user;
}).catch(function(error) {
console.error("Anon sign in failed", error);
});

function signInWithGoogle() {
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
googleToken = result.credential.idToken;
}).catch(function(error) {
console.error("Google sign in failed", error);
})
}

function deleteAndLink() {
firebase.auth().currentUser.delete().then(function() {
var credential =
firebase.auth.GoogleAuthProvider.credential(googleToken);
anonUser.link(googleCredential);
}).then(function() {
console.log("Link succeeded");
}).catch(function(error) {
console.error("Something went wrong", error);
});
}

关于javascript - 在不调用 Facebook API 的情况下将 Facebook 链接到 Firebase Anonymous Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38109348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com