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
}