【问题标题】:Backend of the app authentication with shinyMobile使用 shinyMobile 进行应用程序身份验证的后端
【发布时间】:2021-10-17 03:38:48
【问题描述】:

我正在尝试使用shinyMobile 包在实际应用程序之前实现登录页面。但是,我不确定如何使用updateF7Loginf7Loginf7LoginServer 来检查用户是否提供了正确的用户名和密码。在我的示例中,我假设我的数据库中只有一个用户,该用户存储在对象correct.login 中。我尝试使用observeEvent(),但没有成功。

library(shiny)
library(shinyMobile)


shinyApp(
  ui = f7Page(
    f7Login(id = "loginPage", title = "Welcome"),
    f7SingleLayout(
      navbar = f7Navbar(
        title = "TITLE",
        hairline = FALSE,
        shadow = TRUE
      )%>% f7Align("center"),
      # main content
      f7BlockTitle(
        title = HTML(paste("Welcome", textOutput("user"))),
        size = "large"
      ) %>% f7Align("center")
    )
  ),
  server = function(input, output, session) {
   
    loginData <- moduleServer(f7LoginServer, id = "loginPage")
    
    print(loginData)
    
    correct.login <- c("user"="user1", "password"="thepass")
    
    # TODO?
    
  }
)

有什么想法可以完成这项工作吗?

【问题讨论】:

    标签: r authentication shiny shiny-reactivity


    【解决方案1】:

    首先,我认为您希望对authentication/authorisation 保持非常小心。根据您的应用程序的功能以及您要保护的信息的敏感程度,您真的不应该推出自己的身份验证方案,不幸的是,这看起来像 shinyMobile 在这里鼓励的。您应该为此考虑实施经过良好测试的协议和包,除非您要保护的信息根本不是私有的或有价值的(在这种情况下,为什么需要保护它?)。想想如果受其凭证保护的信息和/或他们的凭证本身被无意泄露,谁会担心到法律诉讼的地步。例如,我花了大约 20 秒的时间从上面的代表中隐藏登录页面,并在没有任何凭据输入的情况下显示下面的内容。

    有多个选项可用于向 Shiny 应用添加自定义身份验证,例如 Auth0shinyproxyfirebase

    有了这个警告,并回答您提出的问题,为了实现所需的身份验证,您需要在某处调用数据库,并验证提供的密码(哈希)是否与为该用户存储。您可能能够链接到上面提到的一些包/系统来存储这样的凭据。具体如何执行此操作取决于您用于存储凭据的数据库以及所需的安全级别。如果此身份验证保护的信息相对微不足道和/或概念验证风格的应用程序,那么这应该是相当简单的,但如果存储了任何敏感信息,正如我之前所说:要非常小心。

    如果您提供有关您计划/尝试做什么的更多信息,它可能有助于提供有关如何解决此问题的更多建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2013-02-28
      • 2017-03-03
      • 2022-01-13
      相关资源
      最近更新 更多