@hurbis/seguranca
Version:
Biblioteca de segurança para autenticação e autorização utilizando Auth0.
107 lines (106 loc) • 3.51 kB
TypeScript
import { InjectionToken } from "@angular/core";
import * as auth0 from "auth0-js";
export declare const CONFIGURACAO: InjectionToken<IConfiguracao>;
export interface ISegurancaConfigService {
getConfiguracao(): IConfiguracao;
}
export interface IConfiguracaoCookie {
nomeToken: string;
nomeTokenAcesso: string;
nomeProfile: string;
}
export interface IConfiguracaoGerenciador {
clientId: string;
clientSecret: string;
enderecoApi: string;
cookieNomeToken: string;
}
export interface IConfiguracaoInterceptador {
/**
* Nome do cabeçalho a ser preechido na requisição para autorização. Padrão: Authorization.
**/
nomeCabecalho?: string;
/**
* Tipo autorização ao ser enviada na requisição. Padrão: Bearer + ' '.
**/
tipoAutorizacao?: string;
whitelistedDomains?: Array<string | RegExp>;
blacklistedRoutes?: Array<string | RegExp>;
/**
* Utiilzado para recuperar o token a ser validado durante as transições de estado no Angular e ao realizar um requisição.
* Para fazer alguma customização do que será retornado, é possível injetar o serviço "options" que na verdade é a requisição do Angular (angular.IRequestConfig).
**/
recuperarToken?: () => string | null | Promise<string | null>;
}
export declare enum TipoConexaoSocial {
Facebook = 0,
Google = 1
}
export interface IConfiguracao {
clientId: string;
callbackUrl?: string;
logoutUrl?: string;
dominio: string;
conexao?: string;
enderecoApi?: string;
cookie: IConfiguracaoCookie;
/**
* Nome da API configurada no Auth0 o qual deseja permissão de acesso.
**/
nomeRecurso?: string;
/** Utilizado para recuperar os atribuitos user_metadata após conformidade OIDC. Ex.: https://app.empresa.com.br/user_metadata */
caminhoUserMetadata?: string;
/** Utilizado para recuperar os atribuitos app_metadata após conformidade OIDC. Ex.: https://app.empresa.com.br/app_metadata */
caminhoAppMetadata?: string;
interceptador?: IConfiguracaoInterceptador;
gerenciador?: IConfiguracaoGerenciador;
}
export interface IAutenticadorIdentity extends auth0.Auth0Identity {
}
export interface IAutenticadorUsuario {
connection: string;
email?: string;
email_verified?: boolean;
verify_email?: boolean;
username?: string;
password?: string;
client_id?: string;
phone_number?: string;
phone_verified?: boolean;
app_metadata?: any;
user_metadata?: IAutenticadorUserMetadata;
}
export interface IAutenticadorUsuarioResult extends auth0.Auth0UserProfile {
identities: IAutenticadorIdentity[];
user_metadata?: IAutenticadorUserMetadata;
multifactor?: any;
last_ip?: string;
last_login?: number;
logins_count?: number;
blocked?: boolean;
}
export interface IAutenticadorUserMetadata {
nome: string;
data_nascimento: string;
dataNascimento?: string;
sexo: string;
foto_url?: string;
fotoUrl?: string;
}
export interface ITokenRequest {
client_id: string;
audience: string;
client_secret: string;
grantType: string;
}
export interface ITokenResult {
accessToken: string;
tokenType: string;
}
export interface IAutenticacaoErroDetalhe {
code: any;
message: string;
error_description: string;
}
export interface IAutenticacaoErro extends auth0.Auth0Error {
}