OAuthAPI.RetrievePasswordToken
Return the OAuth service access token via user name and password.
Syntax
RetrievePasswordToken(
   timeout INTEGER,
   TokenServiceURL STRING, 
   usr, STRING, 
   pass STRING,
   scope STRING )
RETURNS ( STRING, INTEGER )
- timeout. Defines the number of seconds.
 - TokenServiceURL. This is the token endpoint of the Identity Provider (IdP) securing the service.
 - usr. This is the user's login details.
 - pass. This is the user password.
 - scope. This is a space-separated list of scopes defining user access.
 
Returns a valid access token and when it expires in seconds. NULL may be
returned if the access token is not available.
Usage
Use this function to retrieve a valid access token for a client app accessing a RESTful Web service using the username and password.
In case of error, a NULL value will be returned.
OAuthAPI.RetrievePasswordToken function
IMPORT FGL OAuthAPI
MAIN
DEFINE metadata OAuthAPI.OpenIDMetadataType
DEFINE token  STRING
DEFINE expire INTEGER
DEFINE usr, pass, STRING
DEFINE scope STRING
DEFINE idp_url STRING
TRY
     # ...
     CALL OAuthAPI.FetchOpenIDMetadata(20, idp_url)
          RETURNING metadata.*
     IF metadata.issuer IS NULL THEN
         ERROR "IdP not available" 
         EXIT PROGRAM 1
     ELSE
        CALL OAuthAPI.RetrievePasswordToken(5, metadata.token_endpoint, usr, pass, scope ) 
           RETURNING token, expire
        IF token IS NULL THEN
           DISPLAY "Unable to retrieve token"
           EXIT PROGRAM 1
        ELSE
            DISPLAY "Access token value :",token 
            DISPLAY SFMT("Token expires in %1 seconds",expire)
        END IF
     END IF
CATCH
   DISPLAY "ERROR : ",status,sqlca.sqlerrm
   EXIT PROGRAM 1
END TRY
END MAIN