Firebase身份验证:手动检测当前用户最近是否已通过身份验证

时间:2019-09-16 21:55:26

标签: javascript firebase firebase-authentication

默认情况下,如果用户在X之前登录,Firebase将要求他/她通过reauthenticateWithCredential重新进行身份验证才能完成操作。

如果用户在进行下一步操作之前已经具备重新认证的资格,是否可以查询Firebase API?

2 个答案:

答案 0 :(得分:2)

对于某些敏感操作,Firebase身份验证API要求用户最近使用其凭据进行(重新)身份验证。

当前无法检测到特定呼叫是否需要这种重新认证,也没有关于Firebase要求重新认证之前的时间间隔的文档。

实现此目的的正确方法是执行操作并捕获错误。如果error.codeauth/requires-recent-login,则要求用户重新进行身份验证,请使用新的凭据呼叫reauthenticateWithCredential,然后重试该操作。

答案 1 :(得分:1)

一种常见的方法是检查Firebase用户是否已登录,如果未登录,则重定向到登录页面。

const user = firebase.auth().currentUser;

if (user) {
  // User is signed in.
} else {
  // No user is signed in. Redirect to sign-in page.
}

此外,许多Firebase Auth API方法返回错误代码,例如auth/user-token-expiredauth/null-user。例如,请参见updateCurrentUser。这样的方法调用应该相应地处理错误。