R Shiny app中的用户名和密码验证

时间:2017-08-10 11:12:32

标签: r shiny

我正在构建一个Shiny登录页面,用户输入用户名和密码并点击登录。

我有一个数据框,其中包含一组登录凭据,其中用户名和相应的密码分别存储在usernamepassword列下。

以下是server.r

中的脚本
reactive({validate(
  need(input$Username == df$username, message = FALSE),
  need(input$Password == df$password, message = FALSE)
       )}) 

现在问题是我无法使用相应的username验证password,任何有密码的用户名都可以登录。请帮助理解。

df

    username    password
       admin    admin
        jhon    jhon
        test    test
         ipt    ipt
        rock    rock

1 个答案:

答案 0 :(得分:1)

您可以通过连接和比较来要求用户名和密码进行匹配。结果字符串。我也有密码在这里散列。

tbl <- read.table(text ="username    password
                         admin    admin
                         jhon    jhon
                         test    test
                         ipt    ipt
                         rock    rock", 
                  header= TRUE, 
                  stringsAsFactors = FALSE)

library(openssl)

tbl$password <- sha512(tbl$password)

auths <- apply(tbl, 1, paste, collapse = "_")

reactive({validate(
  need(paste0(input$Username,"_", sha512(input$Password)) == auths, message = FALSE)
)})