Forum Discussion

derekwilfong's avatar
derekwilfong
Regular Visitor
5 years ago

Custom Data Connector - Installed Applications

I've been working through some of the Custom Data Connector examples posted on Github Data Connector Samples using OAuth 2.0. In my case I'm trying to connect to Procore for a installed application which requires a redirect of urn:ietf:wg:oauth:2.0:oob. The examples provided don't show how your return the authorization code from the browser title bar. I believe that where the example code calls for a query string parameter (parts = Uri.Parts(callback)[Query]...)  I need to retrieve the code that is in the title bar if that is possible. I appreciate any help. Thank you. 

 

StartLogin = (resourceUrl, state, display) =>
    let
        authorizeUrl = authorize_uri & "?" & Uri.BuildQueryString([
            client_id = client_id,
                        response_type = "code",
                        state = state,
                        redirect_uri = redirect_uri
            ])
 
    in
        [
        LoginUri = authorizeUrl,
        ////
        CallbackUri = redirect_uri,
        WindowHeight = 720,
        WindowWidth = 1024,
        Context = null
        ];

FinishLogin = (context, callbackUri, state) =>
    let
        // parse the full callbackUri, and extract the Query string
        parts = Uri.Parts(callbackUri)[Query],

        // if the query string contains an "error" field, raise an error
        // otherwise call TokenMethod to exchange our code for an access_token

        result = if (Record.HasFields(parts, {"error", "error_description"})) then 
                    error Error.Record(parts[error], parts[error_description], parts)
                 else
                    TokenMethod("authorization_code", parts[code])
                    //TokenMethod()
    in
        result;
        //TokenMethod(parts[code]);

Refresh = (resourceUrl, refresh_token) => TokenMethod("refresh_token", "refresh_token", refresh_token);

 

 

 

1 Reply