PC SOFT

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.
  • Propiedades específicas de la descripción de las variables OAuth2Parameters
  • Modo de funcionamiento de la autenticación OAuth 2.0
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 App
Otros
Procedimientos almacenados
El tipo OAuth2Parameters permite definir la información necesaria para autenticarse en un Webservice implementado el estándar OAuth 2.0. Estas características pueden definirse y modificarse mediante diferentes propiedades de WLanguage.
Este tipo de variable se debe pasar como parámetro a la función AuthIdentify. En caso de éxito, esta función devuelve una AuthToken Variable que puede utilizarse para realizar consultas autenticadas en el servicio web.
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.
Versiones 23 y posteriores
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 23
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
Ejemplo
// Example used to retrieve a token to perform a request on 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"
 
// Ask for authentication: opens the login window
MyToken is AuthToken = AuthIdentify(OAuth2Params)
 
// Request authenticated on a DropBox API
req is httpRequest
req.Method = httpPost
req.URL = "https://api.dropboxapi.com/2/files/list_folder"
req.AuthToken = MyToken // Authentication token
req.ContentType = "application/json"
vAPIParam is Variant
vAPIParam.path = "/Homework/math"
vAPIParam.recursive = False
vAPIParam.include_media_info = False
vAPIParam.include_deleted = False
vAPIParam.include_has_explicit_shared_members = False
req.Content = VariantToJSON(vAPIParam)
 
HTTPresponse is httpResponse = HTTPSend(req)
let Data = JSONToVariant(HTTPresponse.Content)
// Use the incoming data...
Observaciones

Propiedades específicas de la descripción de las variables OAuth2Parameters

Las siguientes propiedades pueden utilizarse para manipular la información necesaria para realizar la autenticación:
Nombre de la propiedadTipo utilizadoEfecto
AdditionalParametersCadena de caracteresParámetros de la primera consulta de autenticación. Esta cadena debe estar formateada como los parámetros de la URL.
AuthURLCadena de caracteresURL de autorización a utilizar (primera URL del estándar OAuth 2.0).
campo de aplicaciónCadena de caracteresPermisos solicitados. Los posibles valores son específicos del servicio web utilizado.
ClientIDCadena de caracteresIdentificador del cliente proporcionado por el servicio al registrar la aplicación.
ClientSecretCadena de caracteresCódigo de acceso secreto de la aplicación. Este código viene dado por el servicio al guardar la aplicación.
RedirectionURLCadena de caracteresURL de redirección a utilizar durante el mecanismo de autenticación.
WINDEVAndroid Para una aplicación de Windows o Android, esta URL debe tener el siguiente formato "http://localhost:PortNumber". Este valor debe ser estrictamente idéntico al especificado al declarar la aplicación en el servicio web correspondiente.
iPhone/iPad Esta Property debe ser necesariamente llenada. Corresponde al esquema de URL de redirección especificado por el proveedor del servicio Web para iOS..
Ejemplos:
  • para Facebook, la URL debe tener el siguiente formato "fb<ClientID>://authorize/".
  • para Google, la URL debe tener el siguiente formato "<ID del grupo>:/oauth2redirect".
WEBDEV - Código Servidor Para un sitio WEBDEV, esta URL se calcula automáticamente. Por lo tanto, no hay necesidad de asignar la Property.
Esta URL debe especificarse en la configuración de la aplicación del proveedor de servicios de autenticación.. Tiene el siguiente formato:
" http(s)://localhost/WD27 0AWP/WD27 0Awp.exe/
OAUTH2_RETURN".
El HTTPS se utilizará automáticamente si es necesario en la URL de redirección.
Si un proxy HTTP actúa como intermediario entre el WEBDEV servidor de aplicaciones que aloja el sitio y el servidor de autenticación, el proxy debe estar configurado para indicar el protocolo correcto en el entorno HTTP "Reenviado" Variable.
Versiones 25 y posteriores
Tipo de respuesta
Nueva funcionalidad versión 25
Tipo de respuesta
Tipo de respuesta
Cadena de caracteres o constanteTipo de respuesta esperada. Los valores posibles son:
  • oauth2ResponseTypeCode (o "Código"): La respuesta es de tipo "Código".
  • oauth2ResponseTypeToken (o "Token"): La respuesta es del tipo "Token".
oauth2ResponseTypeToken es el valor de Default.
Observación: Para una autentificación "personal", el tipo de respuesta debe ser "Token". En el caso de una autenticación para un API o servicio (por ejemplo, el servidor de correo de Google), el tipo de respuesta debe ser "Código".
TokenURLCadena de caracteresURL para obtener el token de acceso a utilizar (segunda URL del estándar OAuth 2.0).

Modo de funcionamiento de la autenticación OAuth 2.0

Las etapas de la autenticación OAuth 2.0 que realiza la función AuthIdentify son las siguientes:
  • 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 identificación de usuarios según el protocolo OAuth 2.0. La interfaz de identificación corresponde al servicio al que se accede.
  • Después de la identificación, el servidor devuelve un primer código de autorización que permite solicitar un token de acceso a los recursos. 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 la segunda solicitud HTTP para solicitar el token de acceso. El resultado es un buffer JSON que contiene, entre otras cosas, el token de acceso ("access_token") que se utilizará para las solicitudes autenticadas. 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 utilizar las API del servicio web, basta con utilizar la función HTTPSend con un httpRequest Variable definiendo la consulta a ejecutar.
El AuthToken Variable se asignará al AuthToken Property del httpRequest Variable (ver ejemplo).
En este caso, el servidor recibirá el encabezado HTTP "Authorization" con un valor en el siguiente formato: "Autorización: 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 obtendrá el token. La respuesta del servidor puede recuperarse a través del ServerResponse Property del AuthToken Variable.
  • 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.
    • WINDEVAndroid Ejemplo de código para Facebook
      // Example used to retrieve the name of the Facebook account
      MyToken is AuthToken
      MyTokenParam is OAuth2Parameters
       
      MyTokenParam.ClientID = "123456789012345"
      MyTokenParam.ClientSecret = "45g8jh5kll45579021qsg5444j"
      MyTokenParam.AuthURL = "https://www.facebook.com/dialog/oauth"
      MyTokenParam.TokenURL = "https://graph.facebook.com/v2.3/oauth/access_token"
      MyTokenParam.RedirectionURL = "http://localhost:9874/"
      MyTokenParam.Scope = "email"
       
      MyToken = AuthIdentify(MyTokenParam)
      IF MyToken <> Null THEN
      IF ErrorOccurred THEN
      Error(ErrorInfo())
      ELSE
      // Token specified on the request URL
      HTTPRequest("https://graph.facebook.com/me?access_token=" + MyToken.Value)
      vMyRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
      // Retrieve the account name
      Trace(vMyRes.name)
      END
      END
    • iPhone/iPad Ejemplo de código para Facebook:
      MyToken is AuthToken
      MyTokenParam is OAuth2Parameters
      MyTokenParam.ClientID = "1705548803004741"
      MyTokenParam.ClientSecret = "7b3305a5aa1687ef04af001ec3388ecc"
      MyTokenParam.AuthURL = "https://www.facebook.com/dialog/oauth"
      MyTokenParam.TokenURL = "https://graph.facebook.com/oauth/access_token"
      MyTokenParam.RedirectionURL = "fb1705548803004741://authorize/"
      MyTokenParam.Scope = "email"
       
      MyToken = AuthIdentify(MyTokenParam)
      IF MyToken <> Null THEN
      IF ErrorOccurred THEN
      Error(ErrorInfo())
      ELSE
      // Token specified on the request URL
      HTTPRequest("https://graph.facebook.com/me?access_token=" + MyToken.Value)
      vMyRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
      // Retrieve the account name
      Trace(vMyRes.name)
      END
      END
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