Rhino puts a strong emphasis on modularization
and for consistency, even the outermost UI and server are defined as a Shiny module.
Unfortunately, this approach is not compatible with the authentication mechanism implemented
in polished
package.
To overcome this you can setup a legacy entrypoint
in your rhino.yml
.
Please be aware that it is a workaround and not a setting recommended for all cases:
legacy_entrypoint: box_top_level
After adding polished
to your dependencies
you can use it in app/main.R
as follows:
box::use( polished, shiny, ) polished$polished_config( app_name = "rhino_app", # the name of your application api_key = Sys.getenv("API_KEY") # API key obtained from polished.tech ) #' @export ui <- polished$secure_ui( shiny$fluidPage( shiny$fluidRow( shiny$column( 6, shiny$h1("Hello Shiny!") ), shiny$column( 6, shiny$br(), shiny$actionButton( "sign_out", "Sign Out", icon = shiny$icon("sign-out-alt"), class = "pull-right" ) ), shiny$column( 12, shiny$verbatimTextOutput("user_out") ) ) ) ) #' @export server <- polished$secure_server( function(input, output, session) { output$user_out <- shiny$renderPrint({ session$userData$user() }) shiny$observeEvent(input$sign_out, { polished$sign_out_from_shiny() session$reload() }) } )
The guide on how to configure Polished Authentication with your Shiny app can be found here.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.