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 secret
string 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 scopes
string | 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 accessCode
string Código de acesso recebido no primeiro acesso.
redirectUri
string URL de redirecionamento. Deve ser informada a mesma URL passada no primeiro acesso caso contrário o provedor de identidade retorna um erro.
codeVerifier
string <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 deviceAuthResponse
DeviceAuthorizationResponse Objeto retornado pelo método 'getDeviceAuthorization'.
timeout
number <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 username
string Identificador do usuário.
password
string Senha do usuário.
scopes
string | 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 refreshToken
string Token utilizado para obtenção de novos tokens de acesso.
scopes
string | 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 options
AuthorizationRequestOptions <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 verifier
string 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 scopes
string | 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 accessToken
string 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 token
string Token de acesso ou de renovação.
tokenType
string <optional>
Tipo do token informado. Aceita os valores 'refresh' ou 'access'. Caso não seja informado será considerado o valor 'refresh'