OAuth2WebClient (FB)¶
FUNCTION_BLOCK OAuth2WebClient EXTENDS CBM.ETrigTo
Function block to a send a request via 2 legged OAuth2 authentication. Supported request types (flows): client_credentials, password and device code.
- InOut:
Scope
Name
Type
Initial
Comment
Inherited from
Input
xExecuteBOOLRising edge: Action startsFalling edge: Resets outputsIf a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values (xDone,xError) are present at the outputs for exactly one cycle.ETrigTo
udiTimeOutUDINTDefines the time (µs) after which an FB (e.g. requiring an external acknowledgement) aborts operation due to a timeout with error message.
ETrigTo
Output
xDoneBOOLTRUE: Action successfully completedETrigTo
xBusyBOOLTRUE: Function block activeETrigTo
xErrorBOOLTRUE: Error occurred, function block aborts actionFALSE: No errorETrigTo
Input
sURLSTRING(1024)URL of the web server (resource server). Leave empty for autorization requests without resource requests.
eRequestTypeREQUEST_TYPE.GET
Type of the request: POST or GET
eContentTypeCONTENT_TYPE.APPLICATION_FORM
HTTP Content-Type of the request
pwsAdditionalHeaderPOINTER TO WSTRING
Additional HTTP header
pwsPostValuePOINTER TO WSTRING
Post parameter
sAuthorizationServerURLSTRING(1024)URL of authorization server
pwsAdditionalAuthenticationHeaderPOINTER TO WSTRING
Additional Auth HTTP header
itfOAuth2CredentialsOAuth2 credentials
xCloseConnectionBOOLFALSE
Close the connection after each request.
itfTLSContextNBS.ITLSContext0
Encapsulates all the data neccecray to handle encrypted tcp connections
Static initialization, as shown in the following code snippet.
VAR commonName : STRING := 'MyRrasPi'; ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName)); myTLSContext : NBS.TLSContext := ( ePurpose:=NBS.PURPOSE.CLIENT_SIDE, sUseCaseName:='NBSTest', sTLSVersion:='1.3', ciCertInfo:=ciCertInfo, udiVerificationMode:=2 ); END_VAR
itfAsyncPropertyNBS.IAsyncProperty0
Runs the connect process in a own background task, usage see library Net Base Services
udiPostValueLengthUDINT0
Length of pwsPostValue in bytes. udiPostValueLength = 0: The null character of pwsPostValue^ is used to calculate the content length. udiPostValueLength > 0: The specified length is used for the content length. This can be used to send binary data.
oAuth2PersistentTokensREFERENCE TO OAuth2PersistentTokens
Reference to the tokens. The structure can be used to store the tokens, e.g., via the Persistence Manager.
Output
eErrorCurrent error state
httpResultThe result of the request
oAuth2DeviceCodeInfoInformation to register the device (device code)
eStateOAuth2StateThe current state of the request
Methods:
Structure: