Iniciando la aplicación Shiny después de ingresar la contraseña

Sé que en Shiny Server Pro hay una función de control de contraseña. La pregunta es si Shiny tiene función passwordInput (), que es como textInput () ¿Alguien ha pensado en cómo hacer lo siguiente?

1) Iniciar la aplicación solo después de ingresar la contraseña correcta 2) Iniciar la parte de la aplicación después de ingresar la contraseña correcta (por ejemplo, tengo algunas tabs en shinydashboard, y quiero acceder a una de ellas solo por contraseña)

¡Gracias!

Voy a responder el n. ° 1 y el n. ° 2 simplemente puede ampliar mi ejemplo. Siguiendo este ejemplo Cifre la contraseña con md5 para Shiny-app. puedes hacer lo siguiente:

1) Crea 2 páginas y si el usuario ingresa el nombre de usuario y la contraseña correctos, puedes renderUI y usar htmlOutput para generar tu página 2) Puedes htmlOutput la posición de la caja con nombre de usuario y contraseña con tags como yo y colorearlas si quieres también usando tags$style

Luego puede examinar la página real y especificar qué se debe crear como resultado de diferentes usuarios. También puedes mirar las cajas emergentes de JavaScript

EDIT 2018: También eche un vistazo al ejemplo aquí https://shiny.rstudio.com/gallery/authentication-and-database.html

Ejemplo de página principal

 rm(list = ls()) library(shiny) Logged = FALSE; my_username < - "test" my_password <- "test" ui1 <- function(){ tagList( div(id = "login", wellPanel(textInput("userName", "Username"), passwordInput("passwd", "Password"), br(),actionButton("Login", "Log in"))), tags$style(type="text/css", "#login {font-size:10px; text-align: left;position:absolute;top: 40%;left: 50%;margin-top: -100px;margin-left: -150px;}") )} ui2 <- function(){tagList(tabPanel("Test"))} ui = (htmlOutput("page")) server = (function(input, output,session) { USER <- reactiveValues(Logged = Logged) observe({ if (USER$Logged == FALSE) { if (!is.null(input$Login)) { if (input$Login > 0) { Username < - isolate(input$userName) Password <- isolate(input$passwd) Id.username <- which(my_username == Username) Id.password <- which(my_password == Password) if (length(Id.username) > 0 & length(Id.password) > 0) { if (Id.username == Id.password) { USER$Logged < - TRUE } } } } } }) observe({ if (USER$Logged == FALSE) { output$page <- renderUI({ div(class="outer",do.call(bootstrapPage,c("",ui1()))) }) } if (USER$Logged == TRUE) { output$page <- renderUI({ div(class="outer",do.call(navbarPage,c(inverse=TRUE,title = "Contratulations you got in!",ui2()))) }) print(ui) } }) }) runApp(list(ui = ui, server = server))