于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。
在我们的应用程序中,我们通常将CustomAuthentication与Firebase一起使用,因为我们有自己的身份验证服务。这非常好,我们能够在使用Firebase的系统和不使用Firebase的系统之间使用相同的认证系统。
现在,我们到了想要利用Firebase的匿名认证的地步,允许用户不用注册就可以使用应用程序,只需在他们登录后传输他们的详细信息。所以我认为,帐户链接是我所需要的。但是我找不到将匿名帐户与自定义身份验证帐户关联的方法。Firebase有可能做到这一点吗?
警告:我从来没有这样做过。你看过这个页面吗?在底部的标题“电子邮件密码登录”下,它列出了这个代码片段:
var credential = firebase.auth.EmailPasswordAuthProvider.credential(email, password);
然后,您可以(显然)像这样链接凭证:
auth.currentUser.link(credential).then(function(user) {
console.log("Anonymous account successfully upgraded", user);
}, function(error) {
console.log("Error upgrading anonymous account", error);
});
我也有类似的问题,但是我认为firebase不允许这种类型的链接,因为它需要链接两个独立的Firebase用户id:自定义令牌创建用户的id和匿名用户的id。
Firebase文档说:
无论用户使用哪种身份验证提供商登录,用户都可以通过相同的 Firebase 用户 ID 进行身份识别。
因此,处理两个用户ID之间的链接会导致不一致。
我通过合并两个账户的数据来解决这个问题。
例如(来自Firebase文档):
// Get reference to the currently signed-in user
var prevUser = auth.currentUser;
// Sign in user with another account
auth.signInWithCredential(credential).then(function(user) {
console.log("Sign In Success", user);
var currentUser = user;
// Merge prevUser and currentUser accounts and data
// ...
}, function(error) {
console.log("Sign In Error", error);
});
我也没有找到匿名和自定义signIns之间的链接,所以我只是使用signInAn匿名并将其uid传递给signInSusCustomToken。
第一步。为了能够实现这一点,您应该从类似如下的单个匿名函数中获取一个uid:
var uid;
auth().signInAnonymously().then(user => {
uid = user.uid;
});
步骤2.保存当前用户数据,如下所示:
database().ref(`users/${uid}`).set({ some: 'data' });
第三步。将此uid发送到您的服务器,服务器将返回自定义令牌。在您的服务器上,您只需将这个uid传递给< code>firebase.auth()。createCustomToken(uid)函数,并将这个自定义令牌发送回去。它将包含uid。
步骤4.当您收到自定义令牌时,您可以按如下方式登录:
auth().signInWithCustomToken(authKey);
仅此而已。您使用自定义令牌登录,并且可以访问保存在步骤2中的匿名用户数据。
将匿名帐户转换为永久帐户的文档指出了流程的3个步骤,但是步骤2似乎违反了步骤1。 当用户注册时,完成用户身份验证提供者的登录流程,直到(但不包括)调用其中一个身份验证提供者。用方法来表示。例如,获取用户的Google ID令牌、Facebook访问令牌或电子邮件地址和密码 获取新身份验证提供程序的身份验证凭据:
在本章中,我们将匿名认证用户。 步骤1 - 启用匿名身份验证 这和我们以前的章节是一样的。需要打开Firebase信息中心,点击侧边菜单中的Auth和标签栏内的认证方法,需要启用匿名身份验证。 第2步 - 登录功能 可以使用方法进行此认证。 示例 让我们来看看下面的例子,参考示例代码 -
当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载
我试图在一个反应式Spring Boot应用程序中配置一个Spring Security性,该应用程序具有一个Vuejs前端,在未经身份验证时将用户重定向到外部OpenID提供程序(用于身份验证)。在用户通过OpenID提供程序进行身份验证并重定向回应用程序(前端)后,将根据OpenID提供程序的响应创建用户名密码身份验证令牌(身份验证),并手动进行身份验证。 但是,在执行此操作时,应用程序似乎无
身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工
我一直很难找到Google Firebase身份验证背后的SLA。根据托管和实时数据库的服务水平协议,Firebase的每月正常运行时间百分比应至少达到99.95%。它是否适用于身份验证服务?