Through broker.oauth.*services, Mat|r offers authorization methods using OAuth2 protocol.

Moreover, it provides OAuth data type as an integrated model, where all the necessary fields involved in OAuth2 protocol are configured.

Model OAuth {
  String clientID
  String secret
  String authorizationURL
  String tokenURL
  String redirectURL
  String accountName


String broker.oauth.authenticate(OAuth oauthConf)

It perform OAuth2 authorization, using the parameters set up in oauthConf and returns a token.

oauthConf OAuth: configuration of OAuth parameters.
String It returns a token if the authorization was successful. Otherwise, it returns null.


In the following example, we can see how our OAuth model is configured to obtain the authorization from facebook app. Firstly, we need to register a Facebook app. Afterwards, we must set some values typical of Facebook application such as cliendId and secret (values autogenerated by the app) and the URLs.

Rule login {
    OAuth fbOAuth = OAuth()
    //clientID and secret are fields generated by facebook
    fbOAuth.clientID = "110429725963xxxx"
    fbOAuth.secret = "8fc0392d9624db955147d36e26xxxxxx"

    //accountName: field used internally by mat|r to persist session info
    fbOAuth.accountName = "MyAccountFacebook"

    //authorizationURL y tokenURL: are provided in the facebook API documentation
    //the api version to connect with must be the same to the version is informed on the facebook app configuration screen
    fbOAuth.authorizationURL = ""
    fbOAuth.tokenURL = ""

    //redirect URL: here you must enter a custom URL as it is established by the oauth2 protocol
    fbOAuth.redirectURL = "http://mywebpage/auth/callback"

    //oauth2 authorize call is made, and in case of success a valid token is fetched
    tokenOAuth = broker.oauth.authenticate(fbOAuth)

    //once the authorization is granted, the variable 'tokenOAuth' can be used in all the endpoints which need a valid token