A través de los servicios broker.oauth.*
, Mat|r ofrece métodos para autorización utilizando el protocolo OAuth2.
Además, proporciona el tipo de dato OAuth como un modelo integrado, donde se configuran todos los campos necesarios que intervienen en los pasos del protocolo OAuth2.
Model OAuth {
String clientID
String secret
String authorizationURL
String tokenURL
String redirectURL
String accountName
}
METODOS PUBLICOS
String broker.oauth.authenticate(OAuth oauthConf)
Realiza la autorización OAuth2 usando los parámetros configurados en oauthConf
y retorna un token.
Parámetro | |
---|---|
oauthConf | OAuth: configuración de parámetros OAuth. |
Retorna | |
---|---|
String | Retorna un token si la autorización fue exitosa, null en cualquier otro caso. |
Ejemplo:
En el siguiente ejemplo podemos observar como es configurado nuestro modelo OAuth para obtener la autorización desde la api de facebook. Para esto, primero se debe registrar una aplicación facebook. Luego tenemos que establecer algunos valores propios de nuestra aplicación de facebook como son el cliendId y secret (valores autogenerados al crear la aplicación); así como también las URLs de la api propiamente dicha.
Rule login {
OAuth fbOAuth = OAuth()
//clientID y secret: son campos autogenerados por facebook
fbOAuth.clientID = "110429725963xxxx"
fbOAuth.secret = "xxxxxxxxxxxxxxxxxx"
//accountName: campo utilizar internamente por mat|r como clave al persistir la info de sesion
fbOAuth.accountName = "MyAccountFacebook"
//authorizationURL y tokenURL: son provistas en la documentacion de la Facebook API
//observar debe tener en cuenta la version de la api a conectarse que se informa en la pagina de configuracion de la apliacion facebook
fbOAuth.authorizationURL = "https://www.facebook.com/v2.9/dialog/oauth?scope=email"
fbOAuth.tokenURL = "https://graph.facebook.com/v2.9/oauth/access_token"
//redirectURL: aqui se debe ingresar una URL propia a utilizar para la redireccion que indica el protocolo
fbOAuth.redirectURL = "http://mywebpage/auth/callback"
//Se efectua la llamada y en caso de exito se obtiene el token valido
String oauthToken = broker.oauth.authenticate(fbOAuth)
//una vez autorizado, se puede utilizar la variable oauthToken para las llamadas a otros endpoints de facebook que requieran dicho token
}