Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

327
Visualizações
AngularFire tiene CustomClaim y customClaims no funcionan

He estado tratando de usar reclamos personalizados de Firebase y pude crear con éxito roles basados en usuarios como manager, editor, admin . Así es como se guarda mi reclamo personalizado en mi Firebase Emulator Suite.

Para el usuario, las almejas personalizadas se configuran así {"role": "manager"} , pero cada vez que intenté iniciar sesión y obtener el reclamo personalizado del usuario, no funcionó.

Solo para su información, traté de establecer reclamos personalizados como este también {"manager": true} pero hasCustomClaim("manager") siempre funciona si uso esto en condiciones if and else incluso si configuro {"manager": false} también si Intento iniciar sesión con privilegios de administrador, pero aún así el nivel de administrador funciona correctamente.

 const adminOnly = () => hasCustomClaim("admin"); const editorOnly = () => hasCustomClaim("editor"); const managerOnly = () => hasCustomClaim("manager" ); const editorOnly2d = pipe(customClaims, map(claims => claims.role == "editor")); const mngOnly2 = pipe(customClaims, map(claims => claims.role == "manager"));

¿Cómo obtendré notificaciones personalizadas de usuarios registrados actuales para poder establecer rutas según la función del usuario?

Esto es lo que obtengo después de iniciar sesión authUser.getIdTokenResult(true)

 aud: "testing" auth_time: 1629796111 email: "test12@gmail.com" email_verified:false exp: 1629799711 firebase: {identities: {…}, sign_in_provider: "password"} iat: 1629796111 iss: "https://securetoken.google.com/testing" role: "manager" name: "Testing" sub: "ZUlXd59HMhFI5gyozxW1xw0IXtPi" user_id: "ZUlXd59HMhFI5gyozxW1xw0IXtPi"

Traté de buscar el problema, pero todos sugieren lo mismo que usé anteriormente.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El {"role": "manager"} no funcionará, porque hasCustomClaim("admin") (por lo que puedo ver) solo verifica la existencia de un reclamo llamado admin .

Eso también explica por qué funciona cuando usa "manager": false , hasCustomClaim simplemente verifica la presencia del reclamo independientemente de su valor. Los no administradores no deben tener un reclamo de admin .

Por lo tanto, si desea utilizar las canalizaciones de AngularFire existentes, necesitará notificaciones que identifiquen si el usuario es un admin , un editor y/o un manager .

Si desea utilizar su propio control de acceso basado en roles, también es posible, pero tendrá que implementar sus propios filtros de canalización de autenticación. Para esos, querrá comenzar registrando los claims , para que pueda ver contra qué está trabajando su llamada de map .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda