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

NomeTipoDescriçãoObrigatório
cConsumerCaracterUsuário, informado pelo provedor do serviço cadastrado como API de consumoX
cSecretCaracterSenha, informada pelo provedor do serviço cadastrado como API de consumoX
oURLObjetoObjeto da classe FWoAuth2Url com as URL’s do provedor do serviçoX


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]
C
ALLBACK_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

NomeTipoDescriçãoObrigatório
cUsername CaracterNome de usuário do provedor de serviço
cPassword CaracterSenha 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

NomeTipoDescriçãoObrigatório
lGrantInUrlLogicalIndica o envio do grant_type na URI de autenticaçãoX


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

NomeTipoDescriçãoObrigatório
lAuthInHeaderLogicalIndica o envio do header de AuthorizationX


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

NomeTipoDescriçãoObrigatório
cURLResourceCharacterURL do recurso/serviço a ser acessado.X
cMethod     CharacterString com método a ser utilizado na requisição. ("GET" ou "POST").
cQuery      CharacterString com "query params" a serem enviados na requisição. 
cBodyCharacterString a ser enviada como "body" da requisição.
aHeadOut    ArrayArray 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: