Saltar al contenido

Cómo verificar si el usuario está deshabilitado o no en Firebase Auth

Solución:

Si tu disable o delete una cuenta de usuario no significa que también active un auth state change. Tampoco debería hacerlo, porque el usuario todavía está autenticado en la aplicación. Necesita saber que en una hora como máximo, Firebase Authentication intentará actualizar el token de acceso para ese usuario en particular que fue deshabilitado o eliminado. Pero en este caso, la actualización fallará, momento en el que el usuario dejará de estar autenticado. Este es el punto en el que se activará el evento de cambio de estado de autenticación.

Si desea revocar la autorización del usuario de inmediato, deberá hacerlo en otra parte de la lógica de su aplicación. Una práctica común cuando se trata de Firebase es crear un nuevo nodo en su base de datos llamado blacklist que debería verse así:

Firebase-root
   |
   --- bannedUsers
          |
          uidOfBannedUser: true

Ahora, cuando elimina / deshabilita la cuenta de un usuario en su consola Firebase, también debe agregar el uid correspondiente a la lista de usuarios prohibidos en la base de datos.

La base de datos se puede proteger contra el acceso de usuarios no autorizados con la ayuda de las reglas de seguridad de la base de datos de Firebase. Esto se puede hacer agregando una cláusula a las reglas de seguridad de su base de datos como esta:

{
  "rules": {
    "bannedUsers": {
      ".read": true,
      ".write": false // only admins can write these
    },
    "messages": {
      ".read": "auth != null && !root.child('bannedUsers').child(auth.uid).exists()"
    }
  }
}

Si usa un back-end diferente, la implementación será diferente. Puede haber más ejemplos, pero una lista negra como esta es un enfoque común para prohibir a los usuarios. Descubrirá que puede que le importe tan poco su autenticación que solo los prohíba, en lugar de eliminar sus credenciales, que simplemente podrían volver a crear.

Puedes comprobar FirebaseUser.reload()Actualiza manualmente los datos del usuario actual (por ejemplo, proveedores adjuntos, nombre para mostrar, etc.).

FirebaseAuthInvalidUserException se lanza si la cuenta del usuario actual ha sido deshabilitada, eliminada o sus credenciales ya no son válidas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *