r - 使用钠的 R Shiny 中的用户身份验证和密码存储
问题描述
我正在实现一个 ShinyApp 的登录页面(我不能使用 Shiny Server Pro 的任何付费功能或类似的东西)并且在以下网站上遇到了一些示例代码: https ://www.listendata.com/ 2019/06/how-to-add-login-page-in-shiny-r.html
它使用基于钠的钠包来存储和检查密码。相关代码是
credentials = data.frame(
username_id = c("myuser", "myuser1"),
passod = sapply(c("mypass", "mypass1"), sodium::password_store),
permission = c("basic", "advanced"),
stringsAsFactors = FALSE,
)
用户通过文本框输入用户名和密码,然后 shinyapp 使用该函数检查匹配项sodium::password_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
到数据框中,这是存储登录详细信息的一种相当安全的方法吗?是否有其他方法/软件包或其他免费服务来管理用户帐户和对 Shiny 的身份验证?
解决方案
推荐阅读
- cakephp - 表单提交的 Cakephp3 前缀路由不起作用
- javascript - 返回对象的键,其值为包含匹配条件的属性的对象
- python - 如何在熊猫中将列转换为新标题
- r - “结果必须有长度......”'complete.cases'的错误
- javascript - 如何以一种形式从 2 个选项中获取 2 个 url
- asp.net-core - 发布项目后asp用户密码问题
- rest - EfCore REST-API:对于无状态应用程序,查询应始终为 AsNoTracking
- javascript - 如何将多维数组从 Javascript 转换为 C?
- c - 具有多个空格字符的 printf 符号?
- api - 一次检索所有数据,而不是单独调用每个引用