我正在构建一个Shiny登录页面,用户输入用户名和密码并点击登录。
我有一个数据框,其中包含一组登录凭据,其中用户名和相应的密码分别存储在username
,password
列下。
以下是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
答案 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)
)})