4D Netkit: Mejora de la autorización OAuth2

Traducido automáticamente de Deepl

Con 4D v19 R3, conectar su aplicación a Microsoft Graph API a través de OAuth 2.0 se ha vuelto increíblemente conveniente usando 4D NetKit.

Ahora, con 4D v20 R2, puede obtener sin problemas un token OAuth 2.0 para Google API u otros servidores OAuth 2.0. Y aún mejor, para mejorar aún más la integración de este proceso de autenticación en su aplicación, hemos introducido una característica que le permite mostrar su página HTML directamente en su navegador web una vez que se recibe el token.

¡Sigue leyendo para conocer todos los detalles!

Conexión de HDI a GitHub usando OAuth 2.0

Requisitos previos

Antes de obtener un token de la API de Google, el primer paso es obtener las credenciales de cliente OAuth 2.0 de la Consola de API de Google. Esto establece una relación de confianza entre tu aplicación y la API de Google. La confianza es unidireccional: tu aplicación confía en la API de Google, no viceversa.

Este tutorial de Google es un recurso excelente para comprender cómo utilizar OAuth 2.0 para acceder a las API de Google.

El registro integra tu aplicación con la Consola API de Google y establece la información que utiliza para obtener tokens, entre la que se incluye:

  • un ID de cliente: Un identificador único asignado por la Consola de API de Google.
  • un URI/URL de redireccionamiento: Uno o varios puntos finales en los que tu aplicación recibirá respuestas de la Consola de API de Google.
  • a Secreto del cliente: una clave secreta que tu aplicación utiliza para autenticarse con la Consola de API de Google.

Obtención de un token de acceso de Google

Sólo tienes que utilizar el comando New OAuth2 provider o la clase cs.NetKit.OAuth2Provider con el atributo name igual a «Google» para obtener tu token.

cs.NetKit.OAuth2Provider con toda la información facilitada durante el registro:

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()

obtener un token de acceso de otros servidores

Puedes utilizar the New OAuth2 provider o la clase cs.NetKit.OAuth2Provider con otros servidores OAuth 2.0 que no sean Microsoft o Google. Sólo tienes que rellenar el authenticateURI y el tokenURI con los URI específicos de tu servidor OAuth 2.0 y verificar que el código de autorización devuelto está en formato JSON.

Por ejemplo, puedes conectar tu aplicación a GitHub con el siguiente código:

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 las páginas de resultados

Para mostrar tu propia página al final de la autenticación, necesitas utilizar los atributos authenticationPage y authenticationErrorPage:

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

Nos esforzamos constantemente para ofrecer a nuestros usuarios la mejor experiencia posible, y le animamos a compartir sus opiniones y comentarios en el foro 4D. Sus comentarios nos ayudan a comprender mejor sus necesidades y a mejorar continuamente nuestros productos y servicios.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.