AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Gestión del protocolo OAuth 2.0
  • Propiedades específicas de las variables de tipo AuthToken
  • Cómo funciona la autenticación OAuth 2.0
  • Utilizar variables de tipo AuthToken
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
El tipo AuthToken contiene las características de un token de acceso a un servicio web. Este token de acceso fue solicitado previamente:
  • mediante la función AuthIdentify.
  • por una solicitud HTTP. En este caso, la solicitud devuelve el token en formato JSON.
Las características de este token de acceso se pueden definir y cambiar utilizando diferentes propiedades WLanguage.
Nota: 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
// Exemple permettant de récupérer un token pour effectuer une requête sur Dropbox
OAuth2Params is OAuth2Parameters
OAuth2Params.ClientID = "01234567890123456789" 
OAuth2Params.ClientSecret = "98765432109876543210"
OAuth2Params.AuthURL = "https://www.dropbox.com/oauth2/authorize"
OAuth2Params.TokenURL = "https://api.dropboxapi.com/oauth2/token"
OAuth2Params.AdditionalParameters = "force_reapprove=false"
<COMPILE IF TypeConfiguration <> Site>
	// Si ce n'est pas dans un site WEB il faut une URL de redirection en localhost
	OAuth2Params.RedirectionURL = "http://localhost:9874/"
<END>

// Demande d'authentification : ouvre la fenêtre de login
MonToken is AuthToken = AuthIdentify(OAuth2Params)

// Requête authentifiée sur une API de Dropbox
req is httpRequest
req.Method = httpPost
req.URL = "https://api.dropboxapi.com/2/files/list_folder"
req.AuthToken = MonToken // Token d'authentification
req.ContentType = "application/json"
vParamAPI is Variant
vParamAPI.path = "/Homework/math"
vParamAPI.recursive = False
vParamAPI.include_media_info = False
vParamAPI.include_deleted = False
vParamAPI.include_has_explicit_shared_members = False
req.Content = VariantToJSON(vParamAPI)

réponseHTTP is httpResponse = HTTPSend(req)
let Données = JSONToVariant(réponseHTTP.Content)
// Utilisation des données reçues ...
// Récupère le token (dans du JSON) via une requête HTTP. La fonction AuthIdentifie n'est pas utilisée
// Définition de la requête
httpReq is httpRequest
httpReq.Method = httpPost
httpReq.URL = PAYPAL_TOKEN
httpReq.User = PAYPAL_APP_ID
httpReq.Password = PAYPAL_SECRET
httpReq.Content = "grant_type=client_credentials"
httpReq.ContentType = "application/x-www-form-urlencoded"

// Exécution de la requête
httpRep is httpResponse = HTTPSend(httpReq)

// Récupération du token
IF httpRep.StatusCode = 200 THEN
	// Déclare les paramètres, nécessaire pour le rafraîchissement du token
	oAuth2Param is OAuth2Parameters
	oAuth2Param.ClientID = PAYPAL_APP_ID
	oAuth2Param.ClientSecret = PAYPAL_SECRET
	oAuth2Param.AuthURL = PAYPAL_ACCESS_BASEURL
	oAuth2Param.Scope = PAYPAL_SCOPES
	oAuth2Param.TokenURL = PAYPAL_TOKEN

	// Initialise le token avec le JSON
	MonToken is AuthToken(oAuth2Param, httpRep.Content)
	gMonToken <= MonToken
END
Sintaxis

Declarar una variable de tipo AuthToken Ocultar los detalles

MyVariable is AuthToken
En este caso, la función AuthIdentify permite obtener los parámetros del token.

Declarar y describir una variable de tipo AuthToken (sin usar la función AuthIdentify) Ocultar los detalles

MyVariable is AuthToken(<OAuth2 parameter> , <Token>)
<OAuth2 parameter>: Variable de tipo OAuthParameters
Nombre de la variable de tipo OAuth2Parameters que contiene la información necesaria para autenticarse en un servicio que implementa el estándar OAuth 2.0.
<Token>: Cadena de caracteres
Cadena en formato JSON o UTF-8 que contiene el token. Corresponde al token devuelto por el servicio.
Propiedades

Propiedades específicas de las variables de tipo AuthToken

Las siguientes propiedades pueden utilizarse para manipular un token de acceso a un servicio web:
Nombre de la propiedadTipo utilizadoEfecto
ExpirationDateDateTimeFecha y hora de caducidad del token.
Android Esta propiedad ahora está disponible.
RefreshCharacter stringValor devuelto por el servidor para determinar si se puede actualizar el token.
Si no se especifica esta propiedad, AuthRefreshToken no podrá utilizarse para actualizar el token. Tendrá que solicitar un nuevo token.
Android Esta propiedad ahora está disponible.
ServerResponseBufferValor devuelto por el servidor cuando se solicita el token de acceso.
Esta propiedad es de solo lectura.
ValidBooleanValidez del token de acceso:
  • True si el token de acceso es válido.
  • False en caso contrario.
Esta propiedad es de solo lectura.
ValueCharacter stringToken de acceso.
Valor rellenado automáticamente al utilizar la función AuthIdentify.
Este valor puede utilizarse para enviar solicitudes autenticadas al servicio web correspondiente.
Observaciones

Cómo funciona la autenticación OAuth 2.0

La función AuthIdentify realiza las siguientes acciones para implementar la autenticación OAuth 2.0:
  • Ejecución de una primera solicitud HTTP para pedir una autorización (URL de autorización especificada en la variable de tipo OAuth2Parameters).
  • Apertura de una ventana de autenticación OAuth 2.0. La ventana de autenticación la define cada servicio.
  • Tras la autenticación, el servidor devuelve un código de autorización para solicitar un token de acceso. Este código se añade en el parámetro de la segunda URL (URL del token de acceso especificado en la variable de tipo OAuth2Parameters).
  • Ejecución de una segunda solicitud HTTP para obtener el token de acceso. El resultado es un buffer JSON que contiene, entre otros elementos, el token de acceso ("access_token") que se utilizará para las solicitudes que requieran autenticación. La variable de tipo AuthToken contiene la información que se encuentra en el buffer JSON. Este token de acceso será utilizado por las llamadas a las API del servicio web.
Para usar las API del servicio web, utilice la función HTTPSend con una variable de tipo httpRequest que define la solicitud a ejecutar.
La variable AuthToken se asignará a la propiedad AuthToken de la variable httpRequest (ver ejemplo).
En este caso, el servidor recibirá la solicitud HTTP "Authorization" con un valor en el siguiente formato: "Authorization: Bearer xxx_access_token_xxx".
Atención:
  • Si el servidor no devuelve el token de acceso en formato de código JSON según el estándar OAuth2.0, se producirá un error y no se recibirá el token. La respuesta del servidor se puede obtener mediante la propiedad ServerResponse de la variable de tipo AuthToken.
  • Si el servidor no soporta el encabezado HTTP "Authorization" para transmitir el token de acceso, el desarrollador debe realizar la transmisión según el formato esperado por el servicio solicitado.
    El siguiente ejemplo permite utilizar el servicio Web de Facebook. En este caso, el token de acceso debe especificarse en la URL de la solicitud.
    • Android Ejemplo de código para Facebook
      // Exemple permettant de récupérer le nom du compte Facebook
      MonToken is AuthToken
      MonTokenParam is OAuth2Parameters
      
      MonTokenParam.ClientID = "123456789012345"
      MonTokenParam.ClientSecret = "45g8jh5kll45579021qsg5444j"
      MonTokenParam.AuthURL = "https://www.facebook.com/dialog/oauth"
      MonTokenParam.TokenURL = "https://graph.facebook.com/v2.3/oauth/access_token"
      MonTokenParam.RedirectionURL = "http://localhost:9874/"
      MonTokenParam.Scope = "email"
      
      MonToken = AuthIdentify(MonTokenParam)
      IF MonToken <> Null THEN
      	IF ErrorOccurred THEN
      		Error(ErrorInfo())
      	ELSE
      		// Token précisé sur l'URL de la requête
      		HTTPRequest("https://graph.facebook.com/me?access_token=" + MonToken.Value)
      		vMonRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
      		// Récupération du nom du compte
      		Trace(vMonRes.name)
      	END
      END
    • iPhone/iPad Ejemplo de código para Facebook:
      MonToken is AuthToken
      MonTokenParam is OAuth2Parameters
      MonTokenParam.ClientID = "1705548803004741"
      MonTokenParam.ClientSecret = "7b3305a5aa1687ef04af001ec3388ecc"
      MonTokenParam.AuthURL = "https://www.facebook.com/dialog/oauth"
      MonTokenParam.TokenURL = "https://graph.facebook.com/oauth/access_token"
      MonTokenParam.RedirectionURL = "fb1705548803004741://authorize/"
      MonTokenParam.Scope = "email"
      
      MonToken = AuthIdentify(MonTokenParam)
      IF MonToken <> Null THEN
      	IF ErrorOccurred THEN
      		Error(ErrorInfo())
      	ELSE
      		// Token précisé sur l'URL de la requête
      		HTTPRequest("https://graph.facebook.com/me?access_token=" + MonToken.Value)
      		vMonRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
      		// Récupération du nom du compte
      		Trace(vMonRes.name)
      	END
      END

Utilizar variables de tipo AuthToken

Las variables de tipo AuthToken pueden utilizarse con las siguientes funciones:
Versión mínima requerida
  • Versión 22
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 09/04/2025

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