UNPKG

@hurbis/seguranca

Version:

Biblioteca de segurança para autenticação e autorização utilizando Auth0.

107 lines (106 loc) 3.51 kB
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 { }