Create the Synapse OAuth component of a Shiny app.

If this is the first time signing in, will need to do OAuth the process. The OAuth process will redirect back here and an authorization code should be in the URL parameters. If this code is available, lauch the main app_ui. This function should be called from startup called from the UI function specified when creating the application object (i.e. the function specified in the ui parameter here shinyApp(ui = app_ui, server = app_server)), which receives the request object and can pass it along.

IMPORTANT: this module assumes the following global variables are available and valid: app, api, authorization_url, app_url, claims_params, scope. See setup_global_oauth_vars.

mod_synapse_oauth_ui(id, request, main_ui = mod_main_ui, main_ui_id = "main")

mod_synapse_oauth_server(id, syn)



The module id.


Shiny request object.


UI function to redirect to when OAuth is done. Defaults to mod_main_ui.


The module id to use when launching main_ui. Defaults to "main".


Synapse client object


if (FALSE) { library("dccvalidator") app_ui <- function(request) { mod_synapse_oauth_ui(id = "oauth", request = request) } app_server <- function(input, output, session) { synapse <- reticulate::import("synapseclient") syn <- synapse$Synapse() syn <- mod_synapse_oauth_server( id = "oauth", syn = syn ) shiny::req(inherits(syn, "synapseclient.client.Synapse"), logged_in(syn)) } run_app() }