斯威夫特& Firebase:检测已撤销的令牌

时间:2018-02-28 17:52:34

标签: swift firebase firebase-authentication

我想知道如何通过Google在本指南中说明客户端(iOS)的撤销令牌:

如何检测(在客户端设备上)令牌被撤销并采取相应行动(重新验证或退出)?

  

回应客户端上的令牌撤销

     

如果通过Admin SDK撤销令牌,则会通知客户端撤销,并且用户需要重新进行身份验证或退出:

GOOGLE的例子:

function onIdTokenRevocation() {
  // For an email/password user. Prompt the user for the password again.
    let password = prompt('Please provide your password for reauthentication');
    let credential = firebase.auth.EmailAuthProvider.credential(
    firebase.auth().currentUser.email, password);
    firebase.auth().currentUser.reauthenticateWithCredential(credential)
    .then(result => {
      // User successfully reauthenticated. New ID tokens should be valid.
    })
    .catch(error => {
      // An error occurred.
    });
}

1 个答案:

答案 0 :(得分:0)

当令牌失效时,所有iOS客户端用户API在调用时都会抛出错误select distinct on (user) user, color from t order by user, rank; 。您可以捕获它,然后重新验证用户。

如果您将令牌发送到您的服务器,您可以按如下方式检测它: https://firebase.google.com/docs/auth/admin/manage-sessions#detect_id_token_revocation_in_the_sdk

您还可以设置自己的侦听器,以便在失效时立即检测到失效。显示了使用实时数据库的示例: https://firebase.google.com/docs/auth/admin/manage-sessions#detect_id_token_revocation