new OAuth2Client(options)
Classe utilizada para autenticação de usuários e sistemas em autorizadores externos utilizando o protocolo "OAuth 2.0".
Parameters:
| Name | Type | Description |
|---|---|---|
options |
OAuth2ClientConstructorOptions | Parâmetros para construção do cliente. |
Example
const OpenIdProvider = require('@nginstack/engine/lib/oidc/OpenIdProvider');
const provider = OpenIdProvider.fromConfig(99999999);
const client = provider.newOAuth2Client();
const authData = client.getDeviceAuthorizationCode(); // Device Flow
authData.verificationUri
Methods
-
<static> encryptClientSecret(secret)
-
Encripta o segredo do cliente para ser armazenado na base de dados de forma mais segura. O valor encriptado pode ser informado diretamente para as APIs do sistema de OAuth2 e OpenID Connect, sendo descriptografado internamente de forma automática.
Parameters:
Name Type Description secretstring Segredo do cliente.
Returns:
Segredo do cliente encriptado.
- Type
- string
-
exchangeClientCredentials( [scopes])
-
Obtém um token de acesso utilizando apenas as credenciais do próprio cliente.
Parameters:
Name Type Argument Description scopesstring | Array.<string> <optional>
Escopos de autorização do novo token.
Returns:
Dados sobre o token gerado.
- Type
- TokenResponse
-
exchangeCode(accessCode, redirectUri [, codeVerifier])
-
Substitui o código de acesso enviado pelo autorizador pelo token de acesso.
Quando utilizado o fluxo de código de autorização (responseTypes igual a 'code'), o autorizador envia uma requisição com o código de acesso para a URL informada em
redirectUri, após a coleta e validação das credenciais. Este método permite trocar esse código de acesso provisório pelo token de acesso final.Parameters:
Name Type Argument Description accessCodestring Código de acesso recebido no primeiro acesso.
redirectUristring URL de redirecionamento. Deve ser informada a mesma URL passada no primeiro acesso caso contrário o provedor de identidade retorna um erro.
codeVerifierstring <optional>
Ao utilizar o fluxo de código de autorização com o uso de PKCE, esse parâmetro permite incluir na requisição de solicitação do token o verificador utilizado na geração do desafio enviado anteriormente.
Returns:
Dados sobre o token gerado.
- Type
- TokenResponse
-
exchangeDeviceAuthorization(deviceAuthResponse [, timeout])
-
Consulta o autorizador para saber se o usuário concluiu o processo de login. Quando o login é realizado pelo usuário no navegador, o autorizador responde a requisição enviada por este método com o token de acesso.
Parameters:
Name Type Argument Description deviceAuthResponseDeviceAuthorizationResponse Objeto retornado pelo método 'getDeviceAuthorization'.
timeoutnumber <optional>
Quantidade de tempo, em milissegundos, que o processo deve esperar pela autenticação do usuário na página do autorizador. Se não for informado será considerado o valor da propriedade 'expires_in' do objeto retornado pela método 'getDeviceAuthorization'.
Returns:
Dados sobre o token gerado.
- Type
- TokenResponse
-
exchangePassword(username, password [, scopes])
-
Obtém um token de acesso com base nas credenciais do usuário, correspondente ao fluxo 'Resource Owner'.
Parameters:
Name Type Argument Description usernamestring Identificador do usuário.
passwordstring Senha do usuário.
scopesstring | Array.<string> <optional>
Escopos de autorização do novo token.
Returns:
Dados sobre o token gerado.
- Type
- TokenResponse
-
exchangeRefreshToken(refreshToken [, scopes])
-
Solicita um novo token de acesso com base em um token de renovação, caso o token anterior tenha expirado.
Parameters:
Name Type Argument Description refreshTokenstring Token utilizado para obtenção de novos tokens de acesso.
scopesstring | Array.<string> <optional>
Novos valores de escopo, caso seja necessário ajustar os escopos do token anterior.
Returns:
Dados sobre o token gerado.
- Type
- TokenResponse
-
getAuthorizationUri( [options])
-
Este método realiza a montagem da URL do autorizador que deve ser utilizada no redirecionamento do usuário, para que a autenticação seja realizada.
Parameters:
Name Type Argument Description optionsAuthorizationRequestOptions <optional>
Parâmetros para construção da URL de autorização.
Returns:
URL montada com os parâmetros informados.
- Type
- string
-
getCodeChallenge(verifier)
-
Gera um desafio com base em um verificador (string aleatória), para quando é utilizado o fluxo de código de autorização com o uso de PKCE.
A geração do desafio consiste em aplicar:
Base64(SHA256(verifier))Parameters:
Name Type Description verifierstring String aleatória que servirá como verificador do desafio.
Returns:
Desafio gerado a partir do verificador.
- Type
- string
-
getCodeVerifier()
-
Gera um verificador (string aleatória), para quando for utilizado o fluxo de código de autorização com o uso de PKCE.
Returns:
String aleatória gerada para ser utilizada como verificador.
- Type
- string
-
getDeviceAuthorization( [scopes])
-
Retorna as informações necessárias para iniciar o fluxo de autorização de dispositivo, como a URL que o usuário deve acessar.
Parameters:
Name Type Argument Description scopesstring | Array.<string> <optional>
Escopos de autorização que terão acesso solicitado.
Returns:
Objeto com os detalhes retornados pelo autorizador sobre esse processo de autorização.
- Type
- DeviceAuthorizationResponse
-
introspect(accessToken)
-
Obtém detalhes sobre um token emitido previamente.
Parameters:
Name Type Description accessTokenstring Token de acesso que se deseja obter detalhes.
Returns:
Objeto com detalhes sobre o token.
- Type
- TokenIntrospectionResponse
-
revoke(token [, tokenType])
-
Revoga um token emitido previamente. Podem ser revogados tokens de acesso ou tokens de renovação conforme descrito na especificação.
Parameters:
Name Type Argument Description tokenstring Token de acesso ou de renovação.
tokenTypestring <optional>
Tipo do token informado. Aceita os valores 'refresh' ou 'access'. Caso não seja informado será considerado o valor 'refresh'