VC vai precisar acessar o payload do token JWT (onde as informações estão armazenadas) e verificar os roles ou outras informações relevantes para decidir quais ações permitir.
Você precisa decodificar o JWT para acessar as informações contidas nele. Existem bibliotecas em Angular que podem te ajudar com isso, como jwt-decode
: https://www.npmjs.com/package/jwt-decode. Depois de decodificar o JWT, você pode acessar os roles no payload do token.
Com base nos roles, você pode implementar a lógica para validar se o usuário tem permissão para realizar determinada ação.
Um exemplo:
import * as jwt_decode from 'jwt-decode';
// Função para decodificar o token JWT e obter os roles
function getRolesFromToken(token: string): string[] {
const decodedToken = jwt_decode(token);
return decodedToken['Realm-access'].roles;
}
// Função para validar se o usuário tem permissão para consultar CPF
function canConsultCPF(token: string): boolean {
const roles = getRolesFromToken(token);
return roles.includes('funcionário');
}
// Função para validar se o usuário tem permissão para consultar todos os CPFs
function canConsultAllCPF(token: string): boolean {
const roles = getRolesFromToken(token);
return roles.includes('gerente');
}
// Exemplo de uso
const token = 'seu_token_jwt_aqui';
if (canConsultCPF(token)) {
// Permitir consulta de CPF do próprio funcionário
} else if (canConsultAllCPF(token)) {
// Permitir consulta de CPF de todos os funcionários
} else {
// Usuário não tem permissão para consultar CPF
}
Não esquece de ajustar a estrutura do payload do seu token e as regras de permissão conforme necessário para o seu caso específico.