Auth
1 função do TermoLeads para auth.
// npm install termo_core --save-exact
import * as leads from "termo_core/leads";
// ou: import { leads } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
eu_auth | GET /api/auth/eu | Devolve o usuário logado e as permissões dele |
eu_auth
GET/api/auth/eu Exige credencial
Devolve o usuário logado e as permissões dele
Exige login: token válido do TermoAuth, e-mail @termotubos.com.br e acesso cadastrado e ativo no TermoLeads (o master do TermoAuth ganha o acesso e o colaborador no primeiro pedido; os demais chegam pela sincronização que um master dispara ao listar os colaboradores). Não exige nenhuma área. Devolve id (o id no TermoAuth), nome, email, master, o nome do perfil_acesso e as permissoes de cada área, que o frontend usa para montar o menu.
function eu_auth(
credencial_de_acesso: CredencialDeAcesso,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.AcessoAtual>import { CredencialDeAcesso } from "termo_core";
import { eu_auth } from "termo_core/leads";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await eu_auth(credencial_de_acesso);Argumentos
Nome
Tipo
Retorno: Promise<tipos.AcessoAtual> · Rust: Result<tipos::AcessoAtual, ErroAoChamarServico> · veja AcessoAtual.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
AcessoAtual
import type { AcessoAtual } from "termo_core/leads";
export interface AcessoAtual {
/**
* E-mail do usuário, sempre `@termotubos.com.br`
*/
email: string;
/**
* Id do usuário no TermoAuth (o `sub` do token)
*/
id: string;
/**
* `true` quando o token traz `isMaster`: tem todas as permissões e libera a importação da base
*/
master: boolean;
/**
* Nome do usuário (o e-mail quando o token não traz nome)
*/
nome: string;
/**
* Nome do perfil de acesso da pessoa; `null` quando não tem perfil
*/
perfil_acesso?: string | null;
/**
* Ações liberadas em cada área (todas para o master)
*/
permissoes: Permissoes;
}Acoes
import type { Acoes } from "termo_core/leads";
export interface Acoes {
/**
* Libera o cadastro na área
*/
criar?: boolean;
/**
* Libera a exclusão na área
*/
deletar?: boolean;
/**
* Libera a alteração na área
*/
editar?: boolean;
/**
* Libera a leitura da área (qualquer outra ação liberada já libera a leitura)
*/
ler?: boolean;
}Permissoes
import type { Permissoes } from "termo_core/leads";
export interface Permissoes {
/**
* Ações liberadas na área `colaboradores`: colaboradores e perfis de acesso
*/
colaboradores?: Acoes;
/**
* Ações liberadas na área `empresas`: Consultar CNPJ e Localizar Empresas
*/
empresas?: Acoes;
}