|
|
|
|
- Modo de funcionamiento de la autenticación OAuth 2.0
- Modo de funcionamiento de la autenticación OpenID
- Aplicación en segundo plano: Caso específico a partir de Android 10
AuthIdentify (Función)
No disponible
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 ConfigurationType<>SITE>
OAuth2Params.RedirectionURL = "http://localhost:9874/"
<END>
MyToken is AuthToken = AuthIdentify(OAuth2Params)
req is httpRequest
req.Method = httpPost
req.URL = "https://api.dropboxapi.com/2/files/list_folder"
req.AuthToken = MyToken
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)
Sintaxis
Autenticación mediante el protocolo OAuth 2.0 (sintaxis asíncrona) Ocultar los detalles
AuthIdentify(<Authentication parameters> , <WLanguage procedure>)
<Authentication parameters>: Variable de tipo OAuth2Parameters Nombre de la variable de tipo OAuth2Parameters que contiene los parámetros que describen los elementos necesarios para obtener el token de acceso. <WLanguage procedure>: Nombre del procedimiento Nombre del procedimiento WLanguage ("callback") llamado durante la autenticación. Para obtener más información sobre este procedimiento, consulte Parámetros del procedimiento utilizado por la función AuthIdentify. Novedad versión 2024 Novedad versión 2024 Observaciones 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 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 la segunda solicitud HTTP para solicitar 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á 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 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.- Ejemplo de código para Facebook
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
HTTPRequest("https://graph.facebook.com/me?access_token=" + MyToken.Value)
vMyRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
Trace(vMyRes.name)
END
END
- 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
HTTPRequest("https://graph.facebook.com/me?access_token=" + MyToken.Value)
vMyRes is Variant = JSONToVariant(HTTPGetResult(httpResult))
Trace(vMyRes.name)
END
END
Modo de funcionamiento de la autenticación OpenID La función AuthIdentify realiza las siguientes etapas de autenticación OpenID: - Ejecución de una primera solicitud HTTP para pedir una autorización (URL de autorización especificada en la variable de tipo OpenIDParameters).
- Apertura de una ventana de autenticación OpenID. La ventana de autenticación la define cada servicio.
- Ejecución de una segunda solicitud HTTP para obtener el token de acceso después de la autenticación. 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.
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 se puede obtener mediante la propiedad ServerResponse de la variable de tipo AuthToken. Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|