shinymanager 通过单击按钮注销

Mar*_*tin 4 r shiny

我希望当用户单击按钮时出现注销和身份验证屏幕。

credentials <- data.frame(
  user = "x", 
  password = "x"
)

library(shiny)
library(shinymanager)

ui <- fluidPage(
  tags$h2("My secure application"),
  actionButton("action_logout", "Logout!")
)

ui <- secure_app(ui)

server <- function(input, output, session) {

  res_auth <- secure_server(
    check_credentials = check_credentials(credentials)
  )

  observeEvent(input$action_logout, {
    # logout
  }) 
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

我发现shinymanager的右下角默认的注销按钮有id = ".shinymanager_logout",所以我尝试用 来调用它session$sendCustomMessage(".shinymanager_logout", 1)。这或许是一种非常幼稚的方式。

如何使用自定义注销按钮注销用户?

Vic*_*orp 5

最简单的方法是使用 重新加载闪亮会话session$reload(),因此在您的示例中:

observeEvent(input$action_logout, {
  session$reload()
}) 
Run Code Online (Sandbox Code Playgroud)

但也许我们可以在包中实现一些东西,您可以在本期评论: https: //github.com/datastorm-open/shinymanager/issues/7