I am planning to make a log-in for my application. For that I need a password field. I am not aware if shiny is even used for this purpose but still is it p
Also, in the meantime there's a native
passwordInput("passwd",label = "Enter password")
password input in shiny. This feature is available in shiny 0.11.1. Here's your reproducible example:
library(shiny)
shinyApp(ui = fluidPage(
tabPanel("Login",
br(),
tags$form(
passwordInput("passwd",label = "Enter password"),
submitButton("send passwd to shiny")
),
textOutput("pwd")
)
),
server = function(input, output,session) {
output$pwd <- renderText({
paste0("Your PW is: ",input$passwd)
})
})
Note, that the password is in the session then I am not so sure, how to erase the password from input$passwd
after login was successful.
Install using library(devtools)
install_github("shiny","alexbbrown",ref="password-field")
Or download and install manually from:
https://github.com/alexbbrown/shiny/tree/password-field
Or patch your shiny manually:
index 9b63c7b..15377d8 100644
--- a/inst/www/shared/shiny.js
+++ b/inst/www/shared/shiny.js
@@ -1336,7 +1336,7 @@
var textInputBinding = new InputBinding();
$.extend(textInputBinding, {
find: function(scope) {
- return $(scope).find('input[type="text"]');
+ return $(scope).find('input[type="text"],input[type="password"]');
},
getId: function(el) {
return InputBinding.prototype.getId.call(this, el) || el.name;
I haven't provided a convenience function to make password fields, but it can be done easily using R/Shiny html tags:
tags$input(id="password",type="password",placeholder="Password")