Lidar com atualizações de escopo em tokens de organização
Com a configuração acima, você pode enviar convites por e-mail, e os convidados podem ingressar na organização com o papel atribuído.
Usuários com diferentes papéis na organização terão diferentes escopos (permissões) em seus tokens de organização. Tanto seu aplicativo cliente quanto os serviços de backend devem verificar esses escopos para determinar os recursos visíveis e as ações permitidas.
Como mencionado anteriormente, o template de organização serve como uma camada-chave de controle de acesso para proteger permissões da organização ou APIs em nível de organização. Certifique-se de revisar as seções de autorização e escolher o modelo de autorização que melhor se adapta ao seu produto.
Este capítulo foca em gestão de permissões e melhores práticas para lidar com mudanças de escopo e permissões em tokens de organização do Logto.
Lidar com atualizações de escopo em tokens de organização
Gerenciar atualizações de escopo em tokens de organização envolve:
Revogar escopos existentes
Por exemplo, rebaixar um administrador para um membro não-administrador deve remover escopos do usuário. Nesses casos, limpe o token de organização em cache e obtenha um novo usando um token de atualização. Os escopos reduzidos serão refletidos imediatamente no novo token de organização emitido.
Conceder novos escopos
Isso pode ser dividido em dois cenários:
Conceder novos escopos que já estão definidos no seu sistema de autenticação
Semelhante à revogação de escopos, se o novo escopo concedido já estiver registrado no servidor de autenticação, emita um novo token de organização e os novos escopos serão refletidos imediatamente.
Conceder novos escopos recém-introduzidos no seu sistema de autenticação
Nesse caso, acione um processo de novo login ou novo consentimento para atualizar o token de organização do usuário. Por exemplo, chame o método signIn no SDK do Logto.
Verifique permissões em tempo real e atualize o token de organização
O Logto fornece uma Management API para buscar permissões do usuário em tempo real na organização.
GET /api/organizations/{id}/users/{userId}/scopes(Referências da API)
Compare os escopos no token de organização do usuário com as permissões em tempo real para determinar se o usuário foi promovido ou rebaixado.
-
Se rebaixado, limpe o token de organização em cache e o SDK emitirá automaticamente um novo com os escopos atualizados.
const { clearAccessToken } = useLogto();
...
// Se os escopos em tempo real buscados forem menores que os escopos do token de organização
await clearAccessToken();Isso não requer um novo login ou processo de novo consentimento. Novos tokens de organização serão emitidos automaticamente pelo SDK do Logto.
-
Se um novo escopo for introduzido no seu sistema de autenticação, acione um processo de novo login ou novo consentimento para atualizar o token de organização do usuário. Por exemplo, com o React SDK:
const { clearAllTokens, signIn } = useLogto();
...
// Se os escopos em tempo real buscados tiverem escopos recém-atribuídos em relação aos escopos do token de organização
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});O código acima aciona uma navegação para a tela de consentimento e redireciona automaticamente de volta ao seu app com os escopos atualizados no token de organização do usuário.