Server part of shiny module, use with googleAuthUI

googleAuth(
  input,
  output,
  session,
  login_text = "Login via Google",
  logout_text = "Logout",
  login_class = "btn btn-primary",
  logout_class = "btn btn-default",
  access_type = c("online", "offline"),
  prompt = c("consent", "select_account", "both", "none"),
  revoke = FALSE
)

Arguments

input

shiny input

output

shiny output

session

shiny session

login_text

What the login text will read on the button

logout_text

What the logout text will read on the button

login_class

The CSS class for the login link

logout_class

The CSS class for the logout link

access_type

Online or offline access for the authentication URL

prompt

What type of consent screen on authentication

revoke

If TRUE a user on logout will need to re-authenticate

Value

A reactive authentication token

Details

Call via shiny::callModule(googleAuth, "your_ui_name", login_text = "Login")

In some platforms the URL you are authenticating from will not match the Docker container the script is running in (e.g. shinyapps.io or a kubernetes cluster) - in that case you can manually set it via `options(googleAuthR.redirect = http://your-shiny-url`). In other circumstances the Shiny app should be able to detect this itself.

See also

Other shiny module functions: googleAuthUI()

Examples

if (FALSE) { options("googleAuthR.scopes.selected" = c("https://www.googleapis.com/auth/urlshortener")) shorten_url <- function(url){ body = list( longUrl = url ) f <- gar_api_generator("https://www.googleapis.com/urlshortener/v1/url", "POST", data_parse_function = function(x) x$id) f(the_body = body) } server <- function(input, output, session){ ## Create access token and render login button access_token <- callModule(googleAuth, "loginButton", login_text = "Login1") short_url_output <- eventReactive(input$submit, { ## wrap existing function with_shiny ## pass the reactive token in shiny_access_token ## pass other named arguments with_shiny(f = shorten_url, shiny_access_token = access_token(), url=input$url) }) output$short_url <- renderText({ short_url_output() }) } ## ui ui <- fluidPage( googleAuthUI("loginButton"), textInput("url", "Enter URL"), actionButton("submit", "Shorten URL"), textOutput("short_url") ) shinyApp(ui = ui, server = server) }