【问题标题】:Revoke Firebase authentication and sign out when user is deleted删除用户时撤销 Firebase 身份验证并退出
【发布时间】:2021-03-23 11:59:32
【问题描述】:
我一直在网上查找,但尚未找到在 Firebase 管理控制台上删除帐户时退出用户的方法。
当用户通过管理控制台删除帐户时,有没有办法设置云功能或某种方式退出用户。
【问题讨论】:
标签:
google-cloud-firestore
firebase-authentication
admin
【解决方案1】:
如果从管理员中删除帐户,则用户的刷新令牌会自动撤销,因此后端无需再做任何事情。在前端,用户的 ID 令牌将一直有效,直到它自然到期,因此您需要一种方法来通知客户端他们的令牌已被撤销。
一种简单的方法是将用户的状态存储在实时数据库中,然后订阅任何更改并在该值更改时注销用户。
假设您的数据库如下所示:
{
"users": {
"userId123": {
"status": "active"
}
}
}
在您的前端代码中,客户端在页面加载时订阅/users/userId123,当status 值发生变化时,执行一个操作。
例如:
firebase.database.ref('/users/userId123/status').onWrite((change, context) => {
if (!change.after.exists()) {
callSignOut();
return null;
}
const val = change.after.val();
if (val !== 'active') {
callSignOut();
return null;
}
});
完全未经测试,但应该可以帮助您入门。