R 用户身份验证和密码存储
我正在实现ShinyApp的登录页面(我不能使用Shinny Server Pro的任何付费功能或类似功能),并在以下网站上使用了一些示例代码: 它使用基于钠的钠包来存储和检查密码。有关守则如下:R 用户身份验证和密码存储,r,authentication,shiny,passwords,libsodium,R,Authentication,Shiny,Passwords,Libsodium,我正在实现ShinyApp的登录页面(我不能使用Shinny Server Pro的任何付费功能或类似功能),并在以下网站上使用了一些示例代码: 它使用基于钠的钠包来存储和检查密码。有关守则如下: credentials = data.frame( username_id = c("myuser", "myuser1"), passod = sapply(c("mypass", "mypass1"), sodium::password_store), permission =
credentials = data.frame(
username_id = c("myuser", "myuser1"),
passod = sapply(c("mypass", "mypass1"), sodium::password_store),
permission = c("basic", "advanced"),
stringsAsFactors = FALSE,
)
use通过文本框输入用户名和密码,然后shinyapp使用函数Na钠::password\u verify
我注意到的第一件事是密码被存储为行名:
> credentials
username_id
mypass myuser
mypass1 myuser1
passod
mypass $7$C6..../....etc..
mypass1 $7$C6..../....etc..
permission
mypass basic
mypass1 advanced
这是个错误吗?当然,这会破坏将密码存储为散列的目的
一旦我将
row.names=NULL
添加到数据帧中,这是存储登录详细信息的合理安全方法吗?是否有其他方法/软件包或其他免费服务来管理用户帐户并对其进行身份验证?事实上,对于第二个问题,这似乎是一个错误:我会说不,这不是一个合理安全的方法。有两个原因:没有详细检查,它看起来像是DIY解决方案;第二,安全性在一定程度上是一个信任问题,而您指出的错误并不能激发信任。对于第三个问题,尽管建议通常被认为是StackOverflow的主题之外的,但我会指出或查找他们的作者Github问题(开放和封闭),以提出您自己的想法。ShinyProxy是一款更为复杂和集成的产品,它可以处理身份验证,而且是免费的。