UNPKG

govbr-auth

Version:

Biblioteca de autenticação GOV.BR não oficial para aplicações Node.js | Unofficial GOV.BR authentication library for Node.js applications

194 lines (188 loc) 7.44 kB
/** * Environment type for GOV.BR API * Tipo de ambiente para a API do GOV.BR */ type Environment = 'production' | 'staging'; /** * Configuration interface for GovBRAuth * Interface de configuração para GovBRAuth */ interface GovBRConfig { /** Client ID provided by GOV.BR / ID do cliente fornecido pelo GOV.BR */ clientId: string; /** Client secret provided by GOV.BR / Chave secreta fornecida pelo GOV.BR */ clientSecret: string; /** Redirect URI for OAuth flow / URI de redirecionamento para o fluxo OAuth */ redirectUri: string; /** Environment selection / Seleção de ambiente */ environment?: Environment; /** OAuth scopes / Escopos OAuth */ scopes?: string[]; } /** * Parameters for authorization URL generation * Parâmetros para geração da URL de autorização */ interface AuthorizeParams { /** Response type for OAuth flow / Tipo de resposta para o fluxo OAuth */ responseType?: string; /** Nonce for OpenID Connect / Nonce para OpenID Connect */ nonce?: string; /** State for CSRF protection / State para proteção CSRF */ state?: string; /** PKCE code challenge / Desafio de código PKCE */ codeChallenge?: string; /** PKCE code challenge method / Método de desafio de código PKCE */ codeChallengeMethod?: string; } /** * Token response from GOV.BR * Resposta de tokens do GOV.BR */ interface TokenResponse { /** Access token / Token de acesso */ access_token: string; /** ID token for OpenID Connect / Token de ID para OpenID Connect */ id_token: string; /** Token type (usually "Bearer") / Tipo do token (geralmente "Bearer") */ token_type: string; /** Token expiration time in seconds / Tempo de expiração do token em segundos */ expires_in: number; } /** * User information from GOV.BR * Informações do usuário do GOV.BR */ interface UserInfo { /** User identifier / Identificador do usuário */ sub: string; /** User's full name / Nome completo do usuário */ name: string; /** User's email / Email do usuário */ email?: string; /** User's phone number / Número de telefone do usuário */ phone_number?: string; /** Email verification status / Status de verificação do email */ email_verified?: boolean; /** Phone number verification status / Status de verificação do telefone */ phone_number_verified?: boolean; /** User's profile picture URL / URL da foto de perfil do usuário */ picture?: string; /** Authentication methods used / Métodos de autenticação utilizados */ amr: string[]; /** User's social name / Nome social do usuário */ social_name?: string; /** User's CNPJ if available / CNPJ do usuário se disponível */ cnpj?: string; } /** * Trust level information * Informação de nível de confiabilidade */ interface ConfiabilidadeNivel { /** Trust level ID / ID do nível de confiabilidade */ id: string; /** Last update date / Data da última atualização */ dataAtualizacao: string; } /** * Trust seal information * Informação de selo de confiabilidade */ interface ConfiabilidadeSelo { /** Trust seal ID / ID do selo de confiabilidade */ id: string; /** Last update date / Data da última atualização */ dataAtualizacao: string; } /** * Core service for handling GOV.BR authentication and authorization. * Serviço principal para gerenciamento de autenticação e autorização do GOV.BR. */ declare class AuthService { private readonly config; private readonly endpoints; private readonly client; /** * Creates a new instance of AuthService. * Cria uma nova instância do AuthService. * * @param config - Configuration object / Objeto de configuração * @throws {Error} If required configuration parameters are missing * Se parâmetros obrigatórios de configuração estiverem faltando */ constructor(config: GovBRConfig); /** * Sets up Axios interceptors for error handling. * Configura interceptadores do Axios para tratamento de erros. * * @private */ private setupAxiosInterceptors; /** * Generates the authorization URL for the OAuth flow. * Gera a URL de autorização para o fluxo OAuth. * * @param params - Optional authorization parameters / Parâmetros opcionais de autorização * @returns Authorization URL string / String da URL de autorização */ generateAuthorizationUrl(params?: AuthorizeParams): string; /** * Exchanges authorization code for access tokens. * Troca o código de autorização por tokens de acesso. * * @param code - Authorization code from callback / Código de autorização do callback * @param codeVerifier - PKCE code verifier / Verificador de código PKCE * @returns Promise with token response / Promise com resposta dos tokens */ getTokens(code: string, codeVerifier: string): Promise<TokenResponse>; /** * Retrieves user information using the access token. * Obtém informações do usuário usando o token de acesso. * * @param accessToken - Valid access token / Token de acesso válido * @returns Promise with user information / Promise com informações do usuário */ getUserInfo(accessToken: string): Promise<UserInfo>; /** * Gets user's trust levels. * Obtém os níveis de confiabilidade do usuário. * * @param accessToken - Valid access token / Token de acesso válido * @param cpf - User's CPF / CPF do usuário * @returns Promise with trust levels / Promise com níveis de confiabilidade */ getConfiabilidadeNiveis(accessToken: string, cpf: string): Promise<ConfiabilidadeNivel[]>; /** * Gets user's trust seals. * Obtém os selos de confiabilidade do usuário. * * @param accessToken - Valid access token / Token de acesso válido * @param cpf - User's CPF / CPF do usuário * @returns Promise with trust seals / Promise com selos de confiabilidade */ getConfiabilidadeSelos(accessToken: string, cpf: string): Promise<ConfiabilidadeSelo[]>; /** * Generates the logout URL. * Gera a URL de logout. * * @param postLogoutRedirectUri - URL to redirect after logout / URL para redirecionamento após logout * @returns Logout URL string / String da URL de logout */ generateLogoutUrl(postLogoutRedirectUri: string): string; } declare class GovBRAuth extends AuthService { constructor(config: GovBRConfig); } declare class GovBRAuthError extends Error { readonly code: string; readonly statusCode?: number | undefined; readonly originalError?: Error | undefined; constructor(message: string, code: string, statusCode?: number | undefined, originalError?: Error | undefined); } declare function generateNonce(): string; declare function generateState(): string; declare function generateCodeVerifier(): string; declare function generateCodeChallenge(verifier: string): string; declare function base64URLEncode(str: string): string; export { type AuthorizeParams, type ConfiabilidadeNivel, type ConfiabilidadeSelo, type Environment, GovBRAuth, GovBRAuthError, type GovBRConfig, type TokenResponse, type UserInfo, base64URLEncode, generateCodeChallenge, generateCodeVerifier, generateNonce, generateState };