Hi Paul, I’m also very excited about the new container pre-initialization and sharing features. To answer your question, I found this nice minimal code example here at the end:
javascript - get response header variable in Shiny - Stack Overflow
library(shiny)
server <- function(input, output, session) {
output$summary <- renderText({
ls(env=session$request)
})
output$headers <- renderUI({
selectInput("header", "Header:", ls(env=session$request))
})
output$value <- renderText({
if (nchar(input$header) < 1 || is.null(input$header) || !exists(input$header, envir=session$request)){
return("NULL");
}
return (get(input$header, envir=session$request));
})
}
ui <- pageWithSidebar(
headerPanel("Shiny Client Data"),
sidebarPanel(
uiOutput("headers")
),
mainPanel(
h3("Headers passed into Shiny"),
verbatimTextOutput("summary"),
h3("Value of specified header"),
verbatimTextOutput("value")
)
)
shinyApp(ui, server)
When starting from within shinyproxy you should see:
# Added by default
get("HTTP_X_SP_USERGROUPS", envir=session$request)
get("HTTP_X_SP_USERID", envir=session$request)
You can add additional headers.
I’m using OpenID Connect and added this to my app configuration:
http-headers:
X_SP_GIVEN_NAME: "#{oidcUser.givenName}"
X_SP_FAMILY_NAME: "#{oidcUser.familyName}"
X_SP_EMAIL: "#{oidcUser.email}"
X_SP_PREFFERED_USERNAME: "#{oidcUser.preferredUsername}"