4D Netkit: Melhoria da autorização OAuth2

Tradução automática de Deepl

Com 4D v19 R3, conectar sua aplicação ao Microsoft Graph API através de OAuth 2.0 se tornou incrivelmente conveniente usando 4D NetKit.

Agora, com 4D v20 R2, pode facilmente obter um token OAuth 2.0 para Google API ou outros servidores OAuth 2.0. E ainda melhor, para melhorar ainda mais a integração desse processo de autenticação em sua aplicação, introduzimos um recurso que permite exibir sua página HTML diretamente em seu navegador web uma vez que o token é recebido.

Continue lendo para saber todos os detalhes!

HDI Connect to GitHub usando OAuth 2.0

Pré-requisitos

Antes de obter um token da API do Google, a primeira etapa é obter as credenciais do cliente OAuth 2.0 no Console da API do Google. Estabelece uma relação de confiança entre a sua aplicação e a API do Google. A confiança é unidirecional: a sua aplicação confia na API do Google e não vice-versa.

Este tutorial da Google é um excelente recurso para compreender como utilizar o OAuth 2.0 para aceder às APIs do Google.

O registo integra a sua aplicação na Consola de API do Google e estabelece as informações que esta utiliza para obter tokens, incluindo:

  • um ID de cliente: Um identificador exclusivo atribuído pela Consola de API do Google.
  • um URI/URL de redireccionamento: Um ou mais pontos finais onde a sua aplicação receberá respostas da Consola de API do Google.
  • a Segredo do cliente: uma chave secreta que a sua aplicação utiliza para se autenticar na Consola de API do Google.

Obter um token de acesso do Google

Só precisa de utilizar o comando New OAuth2 provider ou a classe cs.NetKit.OAuth2Provider com o atributo name igual a “Google” para obter o seu token.

cs.NetKit.OAuth2Provider classe com todas as informações fornecidas durante o registo:

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={name:"Google"; \
   permission:"signedIn"; \
   clientId:"499730024306-rfub401kvb2794llikrtb4fphigrggt7.apps.googleusercontent.com"; \
   clientSecret:"fc1kwxb6NMzEKi9Ka_fjvB2Z"; \
   redirectURI:"http://127.0.0.1:50993/authorize/"; \
   scope:"https://mail.google.com/"}
$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

obter um token de acesso de outros servidores

Pode utilizar o comando the New OAuth2 provider ou a classe cs.NetKit.OAuth2Provider com outros servidores OAuth 2.0 que não sejam Microsoft ou Google. Só precisa de preencher o authenticateURI e o tokenURI com os URIs específicos do seu servidor OAuth 2.0 e verificar se o código de autorização devolvido está no formato JSON.

Por exemplo, pode ligar a sua aplicação ao GitHub com o código abaixo:

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={permission:"signedIn"; \
clientId:"734e0b59xxx"; \
clientSecret:"125a576xxx"; \
redirectURI:"http://localhost:50993/authorize/"; \
scope:"repo, user"; \
authenticateURI:"https://github.com/login/oauth/authorize"; \
tokenURI:"https://github.com/login/oauth/access_token"}

$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

Personalizar as páginas de resultados

Para exibir sua própria página no final da autenticação, é necessário usar os atributos authenticationPage e authenticationErrorPage:

$param.authenticationPage:=Folder(fk web root folder).file("authentication.htm")
$param.authenticationErrorPage:=Folder(fk web root folder).file("error.htm")

Nós constantemente nos esforçamos para fornecer a nossos usuários a melhor experiência possível, e nós o encorajamos a compartilhar seus pensamentos e feedback no fórum 4D. Seu feedback nos ajuda a entender melhor suas necessidades e melhorar continuamente nossos produtos e serviços.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.