import { IAuthSettings } from './auth-settings.interface'; import { User } from 'oidc-client'; import { Observable } from 'rxjs'; /** * Interface de serviço para autorização http */ export interface IAuthBaseService { /** * Propriedade que indica que o serviço foi inicializado devido a possibilidade de * carregar o serviço de forma lazy */ isInitialized: boolean; /** * Nome abrevido do tenant corrente identificado no serviço de autorização */ shortNameTenant: string; /** * Método responsável por retornar um observable indicando se o usuário * está logado */ isLoggedInObs(): Observable; /** * Método responsável por retornar o tipo do token */ getUserTokenType(): string; /** * Método responsável por retornar o token de acesso */ getUserAccessToken(): string; /** * Método responsável por retornar o usuário autenticado */ getUser(): Promise; /** * Método responsável por retornar o header de autorização */ getAuthorizationHeaderValue(): string; /** * Método responsável por redirecionar a janela atual para o endpoint * de autorização */ signinRedirect(): void; /** * Método responsável por redirecionar a janela atual * para o endpoint de término da sessão */ signoutRedirect(): void; /** * Método responsável por processar a resposta do endpoint de autorização, * retornando o usuário autenticado */ signinRedirectCallback(): Promise; /** * Método disparado ao completar autenticação, emitindo evento caso * o usuário esteja realmente autenticado, ou redirecionando para o endpoint de autorização * caso não esteja autenticado */ completeAuthentication(): Promise; /** * Método responsável por autorizar o direcionamento para uma determinada rota, * caso o usuário esteja expirado executa o processo de signout, caso esteja inválido * executa a função para o processo de login */ authorize(): Promise; /** * Método responsável executar o processo de login/autenticação */ loginFlow(): Promise; /** * Método responsável executar o processo de logout */ logoutFlow(): Promise; /** * Método responsável por identificar o tenant para o serviço de autorização. * Ao setar, o serviço é inicializado novamente * @param shortNameTenant Nome abreviado do tenant * @return Usuário atualmente autenticado */ setShortNameTenant(shortNameTenant: string): Promise; /** * Método responsável por alterar as configurações de autenticação * @param authSettings Configurações de autenticação */ changeAuthSettings(authSettings: IAuthSettings): Promise; }