我做了一个Firebase函数,它将检测无效请求并阻止用户帐户:
if (!context.auth)
return null;
if (!(typeof data.text === 'string') || data.text.length !== 0)
{
return admin.auth().updateUser(context.auth.uid, { disabled: true });
}
,但是用户仍然可以在身份验证后调用该函数。 如何在云功能内部结束用户会话并强制用户再次进行身份验证?
答案 0 :(得分:1)
使用Firebase Admin SDK撤销用户的刷新令牌。这适用于各种语言,但是在Node.js中,它看起来像:
// Revoke all refresh tokens for a specified user for whatever reason. // Retrieve the timestamp of the revocation, in seconds since the epoch. admin.auth().revokeRefreshTokens(uid) .then(() => { return admin.auth().getUser(uid); }) .then((userRecord) => { return new Date(userRecord.tokensValidAfterTime).getTime() / 1000; }) .then((timestamp) => { console.log("Tokens revoked at: ", timestamp); });
有关更多信息,请参阅文档中的revoking refresh tokens。