AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV, WEBDEV y WINDEV Mobile 2024!
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Gestión del protocolo OAuth 2.0
  • Propiedades específicas de las variables de tipo JWTParameters:
  • Obtener los parámetros de un archivo JSON de Google
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
JWTParameters (Tipo de variable)
 
El tipo JWTParameter permite definir todos los datos necesarios para la autenticación basada en JWT. Las características de este tipo se pueden definir y cambiar utilizando diferentes propiedades WLanguage.
Un token web JSON (JWT) consta de 3 cadenas separadas por puntos ("."):
  • La primera parte, el encabezado, es un JSON codificado con Base64Url que describe el tipo de token y el algoritmo utilizado para la firma.
  • La segunda parte, la carga útil, es un JSON codificado con Base64Url que contiene las reclamaciones (o afirmaciones). Este JSON puede contener reclamaciones predefinidas que proporcionen información adicional sobre el token (fecha y hora de caducidad, destinatarios, asunto, etc.).
  • La última parte, la firma, garantiza la autenticidad del token. Esta firma se genera a partir de los 2 primeros segmentos utilizando un algoritmo específico (por ejemplo, HS256 con una clave secreta).
Observación: Para obtener más información sobre la declaración de este tipo de variable y el uso de propiedades WLanguage, consulte Declarar una variable.
Ejemplo
JWTParams is JWTParameters
JWTParams.TokenURL = "https://oauth2.googleapis.com/token"
JWTParams.Scope = "https://www.googleapis.com/auth/firebase.messaging"
JWTParams.Issuer = "firebase-adminsdk-m4j35@notifpushandroid28.iam.gserviceaccount.com"
JWTParams.Encryption = jwtRS256
JWTParams.PrivateKeyID = "8ae8fe7c76c9f6dbebaf5cba066e14ac26165277"

JWTParams.AdditionalParameters = [
sub=Test
nom=TOTO
email=toto@gmail.com
]

JWTParams.PrivateKey = [
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLqXc2nE0iTK++
puV2N+H2DoXLjwi36y84LRdLFbfT7BIybOBehIhfGRNY3NsdCShw2VhGGHn1sWl5
2+w6Y2VCZqbMG0XfowdVq1TExyuIeEcRhieiG4EMjP6+yIvwf7rIkmjmflisHBks
iXNeBx1CwvfpafU3ssMAaQ+F1z8LhN1w5REAx8+nALMFOoGHK83edutxesqggpyk
bmcKM8R18ty9au6/sTcOXmnCy</span>KnSk8kOGvvjSvQG3UVWIKUrXdRxGami+Z7EhW
YBJRMlK1YFOzTLJo1kRebUBvZxMXCWxwYjj3uLIk9a/EtTUEVvSvSxxy7KTGK5Xi
9h8hf9UdAgMBAAECggEAD/6oMS7HVAlHyCZdYRJ0eZmcYmdCXQdodvX7nVcAT/F7
YGByopmwCB/1CAaYYshkV7CKIT8s3OHpEbv26oMB5dwj/2Wo8C5ilhTVnHqz7Yzc
sACkPjQAx5aPLzaa3vF5HuV4vZlwp1uxknDdEaZnYuXjCH7c1loAvJiDspQ8DFBn
8KauP5ww3hHIldLgdRu0TCNYIZnsNyTZRKd5PTZOvRtuHJGtYhrc4napcG2GS3ej
Nj7Uv23CxdbIFCu4J2C7BZdxNbT05koqZoAdmemVg6dnVXctVZSlIjZ4sE/6Dl7h
mlrmaV3TJdHuZTIvsDDvA2b7ujAxWnT6CKo31qSXQQKBgQD9T0UC+inzPTSlK6pr
RaxpTHW0eB9S6Q5/sT5I1VNYoRYe3t2MRcypDu</span>VIBZwywPy0WTcrXU8VXawR9a
0Cn3XXlMUe1bjIvuX5/3M8NgPihn7U3b4JeVpExggFioJPfktOELoaL5Dcaw6LRB
abdpirn9ZUtpmHZG+nNCfT+EjQKBgQDN0zUsZrAkBcq6dZEqzFt2SOh7UP4RwEED
D7NU1Y1P27e51zOcSD4IiQ5vuvxnRjB00QmAwk3ycDLMOd4GrNwtjCpXp5D+qkut
Ct5XZUuP+SMuVDhLhwCfw1l7LQvQJQDFGNZW9Bb9mNiKasWSDLDK1xNgv4uq9OQv
vZMzV2KW0QKBgQCB/wlaosmek92NmmAmFyaJD30kdbUVlpcjPvHI7PmN9XVluFgY
YcXLSOSBd886wae+H0KAjhD0zDmUPyH5N/Uhhm32leDq57D0T0zHz1/H535S/3zC
h3sjh6LOr29QM1CopY8MqhH6IHDEX1gKbdd7qX8TpMVT1rN0b5lxGNfdDQKBgFdb
1a3Kx+gCLVGGpN6tbgR+XW45qhyOpQlPmKXhHeFPOGPAWz9xyiKFSYNSsd6Dg/2Q
25+y2LKVvHnB9eKPa8RJQY+Cp5/vV79SZZxieffZnn0DcgFcg39LwqbtL55gljsR
l6fAYiGwxfe56bFbgY4WSzs9EWK2HkPFCr030biBAoGBAIOMvTq4Piqd2P/ShAoG
33xcBTwrmVKutEZH96BU77/IdD6B7s4jP0v7n9omdhttcVtBl5KThmNpvMAhbtb7
7coQ/ynoCpRZROS58hHhYQjIIuQO2RAsxBnaXP1gUFjQr9huDtgT9CDr8PoIIwYV
yYMBbJxhKhlBY9gYByl5G1qO
-----END PRIVATE KEY-----
]

MyToken is AuthToken = AuthIdentify(JWTParams)
IF MyToken.Valid THEN
Info("ok")
ELSE
Info(ErrorInfo(errFullDetails))
END
Propiedades

Propiedades específicas de las variables de tipo JWTParameters:

Las siguientes propiedades pueden utilizarse para manipular una autenticación basada en JWT:
Nombre de la propiedadTipo utilizadoEfecto
AdditionalParametersCharacter stringParámetros adicionales del token (utilizados en la carga útil).
CertificateCertificateCertificado que se utilizará para la firma del token. Este certificado solo se utiliza para el cifrado de tipo jwtRS256.
EncryptionConstante de tipo IntegerAlgoritmo de cifrado utilizado:
  • jwtHS256: Algoritmo HS256 (HMAC con SHA-256).
  • jwtRS256: Algoritmo RS256 (firma de RSA con SHA-256).
IssuerCharacter stringEmisor para la autenticación.
PrivateKeyCharacter stringTexto que representa la clave privada. Este texto comienza por "-----BEGIN PRIVATE KEY-----" o "-----BEGIN RSA PRIVATE KEY-----".
Esta propiedad no es necesaria si se especificó la propiedad Certificate.
PrivateKeyIDCharacter stringCódigo de acceso secreto de la aplicación. Este código lo proporciona el servicio al registrar la aplicación.
ScopeCharacter stringPermisos solicitados. Los valores posibles son específicos del servicio web utilizado.
TokenURLCharacter stringURL para obtener el token de acceso a utilizar (segunda URL del estándar OAuth 2.0).
Observaciones

Obtener los parámetros de un archivo JSON de Google

MyToken is AuthToken
JWTParams is JWTParameters

// Get data from a Google JSON file
JWTParams = JSONToJWTParameters("C:\.<Google JSON file.>.\wd-mail-324009-72613ff8bc14.json")
JWTParams.Scope = "https://mail.google.com"

MyToken = AuthIdentify(JWTParams)
IF NOT MyToken.Valid THEN
    Error(ErrorInfo(), HTMLToText(MyToken.ServerResponse))
    RETURN
END
ToastDisplay("Connection successful", toastShort, vaBottom, haCenter)   
// Rest of the process, use of MyToken...

// Here, JSONToJWTParameters is an internal procedure,
// it could be a local procedure, a global procedure, a class method, etc...

      INTERNAL PROCEDURE JSONToJWTParameters(sJSFileName, nEncryptionKey is int = jwtRS256): JWTParameters       
         jwtFromJsOAuth is JWTParameters
         jsOAuth is JSON = fLoadBuffer(sJSFileName)
         jwtFromJsOAuth.TokenURL = jsOAuth.token_uri..Value
         jwtFromJsOAuth.Issuer = jsOAuth.client_email..Value
         jwtFromJsOAuth.PrivateKeyID = jsOAuth.private_key_id..Value
         jwtFromJsOAuth.PrivateKey = jsOAuth.private_key..Value
         jwtFromJsOAuth.Scope = jsOAuth.universe_domain..Value
         jwtFromJsOAuth.Encryption = nEncryptionKey
         RETURN jwtFromJsOAuth
      END
Versión mínima requerida
  • Versión 2024
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 07/03/2024

Señalar un error o enviar una sugerencia | Ayuda local