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()
}