简体   繁体   English

如何在 shiny 应用程序之前访问 html 页面

[英]How to access html page before a shiny app

The code below, when executed, first enters an html page, where it asks for a username and password.下面的代码在执行时首先进入 html 页面,在该页面中要求输入用户名和密码。 Therefore, how can I register a username and password so that I can enter the shiny APP?那么如何注册用户名和密码才能进入shiny APP呢? Maybe use some php code along?也许使用一些 php 代码? I know there are shiny packages that work with login and password, however, I would like to use an html page that I created myself to access the shiny app.我知道有 shiny 包可以使用登录名和密码,但是,我想使用我自己创建的 html 页面来访问 shiny 应用程序。

Shiny code Shiny代码

library(shiny)
ui <- fluidPage(
    

    sidebarLayout(
        sidebarPanel(
            
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30)
        ),

        mainPanel(
           plotOutput("distPlot")
        )
    )
)

server <- function(input, output) {

    output$distPlot <- renderPlot({
        x    <- faithful[, 2]
        bins <- seq(min(x), max(x), length.out = input$bins + 1)

        hist(x, breaks = bins, col = 'darkgray', border = 'white')
    })

}

shinyApp(ui = htmlTemplate("www/index.html"), server = server)

Output Output 在此处输入图像描述


Index.html索引.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
    <meta name="generator" content="Hugo 0.101.0">
    <title>Signin Template · Bootstrap v5.2</title>

    <link rel="canonical" href="https://getbootstrap.com/docs/5.2/examples/sign-in/">

<link href="assets/dist/css/bootstrap.min.css" rel="stylesheet">

    <style>
      .bd-placeholder-img {
        font-size: 1.125rem;
        text-anchor: middle;
        -webkit-user-select: none;
        -moz-user-select: none;
        user-select: none;
      }

      @media (min-width: 768px) {
        .bd-placeholder-img-lg {
          font-size: 3.5rem;
        }
      }

      .b-example-divider {
        height: 3rem;
        background-color: rgba(0, 0, 0, .1);
        border: solid rgba(0, 0, 0, .15);
        border-width: 1px 0;
        box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
      }

      .b-example-vr {
        flex-shrink: 0;
        width: 1.5rem;
        height: 100vh;
      }

      .bi {
        vertical-align: -.125em;
        fill: currentColor;
      }

      .nav-scroller {
        position: relative;
        z-index: 2;
        height: 2.75rem;
        overflow-y: hidden;
      }

      .nav-scroller .nav {
        display: flex;
        flex-wrap: nowrap;
        padding-bottom: 1rem;
        margin-top: -1px;
        overflow-x: auto;
        text-align: center;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
      }
    </style>

    
    <!-- Custom styles for this template -->
    <link href="signin.css" rel="stylesheet">
  </head>
  <body class="text-center">
    
<main class="form-signin w-100 m-auto">
  <form>
    <img class="mb-4" src="assets/brand/bootstrap-logo.svg" alt="" width="72" height="57">
    <h1 class="h3 mb-3 fw-normal">Insert your login and password</h1>

    <div class="form-floating">
      <input type="email" class="form-control" id="floatingInput" placeholder="name@example.com">
      <label for="floatingInput">E-mail</label>
    </div>
    <div class="form-floating">
      <input type="password" class="form-control" id="floatingPassword" placeholder="Senha">
      <label for="floatingPassword">Password</label>
    </div>

    <div class="checkbox mb-3">
      <label>
        <input type="checkbox" value="remember-me"> Remember me
      </label>
    </div>
    <button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>
    <p class="mt-5 mb-3 text-muted">&copy; 2017–2022</p>
  </form>
</main>

I recommend the shinymanager package ( https://datastorm-open.github.io/shinymanager/ ) as it does provide a good, reliable and (I guess) safe way to have a login-page for your app.我推荐shinymanager package( https://datastorm-open.github.io/shinymanager/ )因为它确实为您的应用程序提供了一个可靠的登录页面(我的猜测)。

You can even store the credentials in a small, local SQLite-database that again is password protected.您甚至可以将凭据存储在一个小型的本地 SQLite 数据库中,该数据库再次受密码保护。

It also comes with a simple administration panel as well as access-statistics.它还带有一个简单的管理面板以及访问统计信息。

you can use php's get and post requests to use username and password loin page using html reference https://www.w3schools.com/tags/ref_httpmethods.asp您可以使用 php 的 get 和 post 请求来使用用户名和密码 loin 页面使用 html 参考https://www.w3schools.com/tags/ref_httpmethods.asp

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM