Pular para o conteúdo principal

Casos de uso comuns

Nesta seção, forneceremos alguns exemplos para ajudá-lo a entender alguns cenários onde reivindicações de token personalizadas podem ser úteis, oferecendo algumas referências. Desta forma, quando você encontrar dificuldades no gerenciamento de acesso, poderá avaliar se as reivindicações de token personalizadas podem lhe trazer conveniência.

Tornar o controle de acesso baseado em atributos (ABAC) possível

Controle de acesso baseado em atributos (ABAC) é um modelo de controle de acesso que utiliza atributos (como papéis de usuário, propriedades de recursos e condições ambientais) para tomar decisões de controle de acesso. É uma maneira flexível e dinâmica de gerenciar o acesso a recursos protegidos.

Suponha que você esteja construindo um aplicativo, e o lançamento do aplicativo seja dividido em duas fases: beta público e lançamento oficial. Mesmo após o lançamento oficial do aplicativo, você deseja que os usuários antigos que participaram do beta público continuem usando os recursos pagos.

Após o lançamento oficial do aplicativo, você usa o recurso de controle de acesso baseado em papel (RBAC) do Logto para implementar o controle de acesso para o uso de recursos pagos. Para verificar facilmente se um usuário já estava usando o aplicativo durante a fase beta pública, você pode usar o método getCustomJwtClaims() para adicionar uma reivindicação createdAt no payload do token.

Então, ao fazer o controle de acesso em suas APIs protegidas, você precisa permitir tokens de acesso que atendam a uma das seguintes condições:

  1. Com o contexto RBAC, tendo o escopo para acessar recursos pagos.
  2. O createdAt é anterior ao tempo de término da fase beta pública.

Se não houver o recurso de reivindicações de token personalizadas, ao verificar permissões para recursos de API protegidos, é necessário chamar a Logto Management API para verificar se o usuário com o token de acesso atual possui as permissões correspondentes ao papel exigido por um determinado recurso de API.

Em um cenário semelhante, suponha que seu aplicativo exiba desejos de aniversário na página de login se o aniversário do usuário estiver se aproximando. Você pode usar reivindicações de token personalizadas para adicionar um campo de aniversário ao payload do token, que pode ser usado para determinar se deve exibir uma mensagem específica.

Bloquear manualmente a emissão de tokens

Suponha que Joe esteja executando um jogo online e use o Logto como um sistema de gerenciamento de identidade e acesso (IAM).

Assuma que este jogo requer recargas para comprar tempo de jogo. Joe registra o saldo de cada usuário em seu serviço de jogo e deduz continuamente do saldo à medida que o tempo de jogo se acumula. Joe quer forçar os jogadores a fazer logout quando o saldo de sua conta estiver esgotado para incentivá-los a recarregar.

Neste ponto, Joe também pode usar o recurso de reivindicações de token personalizadas fornecido pelo Logto para conseguir isso:

  1. No script, uma chamada de API externa buscar dados externos pode ser usada para recuperar o saldo atual do jogador do servidor de jogos de Joe.
  2. Se o saldo for menor ou igual a 0, o método api.denyAccess() pode ser usado para bloquear a emissão de tokens.

Neste momento, como um novo token de acesso válido não pode ser obtido, o jogador será forçado a fazer logout do jogo.