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 a 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