- Criado por Danilo Basilio Medeiros, última alteração por Marcos Zambon Amista em 08 nov, 2024
Descrição
Classe genérica de Client de Autenticação oAuth2, para ser usada como ascendente de novas classes específicas. Utilizada para fazer autenticação de acordo com o protocolo oAuth2, seguindo a especificação RFC6749
Exemplos de implementação
Client para Facebook
Client para Twitter
Client para LinkedIn
Client para Google Drive
Métodos
New()
Descrição
Método construtor da classe
Sintaxe
FWoAuth2Client():New(cConsumer, cSecret, oURL) →
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cConsumer | Caracter | Usuário, informado pelo provedor do serviço cadastrado como API de consumo | X |
cSecret | Caracter | Senha, informada pelo provedor do serviço cadastrado como API de consumo | X |
oURL | Objeto | Objeto da classe FWoAuth2Url com as URL’s do provedor do serviço | X |
Observação
É necessário ter o REST Server ativado, e no arquivo appserver.ini do Application Server responsável pelo serviço, o endpoint de tratamento de callback, mediante a chave abaixo configurada:
[OAUTH_CLIENT]
CALLBACK_SERVER=https://server:port/rest/oauthcallback
Caso problemas de IFRAME ocorram na utilização da classe em webapp, é necessário informar a chave EXTERNALBROWSER com o valor 1 dentro da seção OAUTH_CLIENT, permitindo assim que o navegador abra uma nova aba, essa chave só é respeitando em caso de webapp com web agent, essa nova chave só está disponível na lib 20240812 ou superior:
[OAUTH_CLIENT]
CALLBACK_SERVER=https://server:port/rest/oauthcallback
EXTERNALBROWSER=1
SetAsCode()
Descrição
Seta o "Authorization Grant" (consultar a página 7 da RFC6749) com o tipo Authorization Code.
Sintaxe
FWoAuth2Client():SetAsCode( ) →
SetAsImplicit()
Descrição
Seta o "Authorization Grant" (consultar a página 7 da RFC6749) com o tipo Implicit.
Sintaxe
FWoAuth2Client():SetAsImplicit( ) →
SetAsResourceOwner()
Descrição
Seta o "Authorization Grant" (consultar a página 7 da RFC6749) com o tipo Resource Owner.
Sintaxe
FWoAuth2Client():SetAsResourceOwner(cUsername, cPassword) →
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cUsername | Caracter | Nome de usuário do provedor de serviço | |
cPassword | Caracter | Senha do provedor de serviço |
SetAsClientCredentials()
Descrição
Seta o "Authorization Grant" (consultar a página 7 da RFC6749) com o tipo Client Credentials.
Sintaxe
FWoAuth2Client():SetAsClientCredentials( ) →
ClearToken()
Descrição
Efetua a limpeza do token de acesso da instância atual
Sintaxe
FWoAuth2Client():ClearToken( ) →
Retorono
Logical → Indica se a limpeza foi efetuada
ClearError()
Descrição
Efetua a limpeza dos erros da instância atual
Sintaxe
FWoAuth2Client():ClearError( ) →
Destroy()
Descrição
Método destrutor, efetua limpezas de objetos e variáveis
Sintaxe
FWoAuth2Client():Destroy( ) →
ClassName()
Descrição
Retorna o nome da classe
Sintaxe
FWoAuth2Client():ClassName( ) →
SetGrantInUrl()
Descrição
Seta o envio do grant_type na URL de autenticação
Sintaxe
FWoAuth2Client():SetGrantInUrl(lGrantInUrl)
Observação
O padrão é enviar o grant_type, mas em API's como a do Google, tivemos problemas ao enviar, portanto o método foi criado e disponibilizado
Método disponível na lib 20221010 ou superior
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
lGrantInUrl | Logical | Indica o envio do grant_type na URI de autenticação | X |
SetAuthInHeader()
Descrição
Seta o envio do Authorization no header na requisição do token
Sintaxe
FWoAuth2Client():SetAuthInHeader(lAuthInHeader)
Observação
O padrão é enviar o Authorization, mas em API's como a do Google, tivemos problemas ao enviar, portanto o método foi criado e disponibilizado
Método disponível na lib 20221010 ou superior
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
lAuthInHeader | Logical | Indica o envio do header de Authorization | X |
GetToken()
Descrição
Retorna o token fornecido pelo serviço de autenticação e armazenado na instância atual da classe, esse método não gera nova requisição.
Sintaxe
FWoAuth2Client():GetToken( ) →
Retorono
Character→ String contendo o token.
Access()
Descrição
Realiza o processo de autenticação, obtenção do token e requisição do recurso informado via parâmetro "cURL".
Sintaxe
FWoAuth2Client():Access( cURL ) →
Retorono
Character→ String contendo o response da requisição.
Parâmetros
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cURLResource | Character | URL do recurso/serviço a ser acessado. | X |
cMethod | Character | String com método a ser utilizado na requisição. ("GET" ou "POST"). | |
cQuery | Character | String com "query params" a serem enviados na requisição. | |
cBody | Character | String a ser enviada como "body" da requisição. | |
aHeadOut | Array | Array com as propriedades que devem ser adicionadas no header da requisição. Ex: { {"Authorization", cToken}, {"Accept", "*/*"} } |
Esta documentação está em construção. Novos métodos serão adicionados em breve.
Índice: