簡體   English   中英

如何將 shinyApp 限制在一台計算機上

[英]How to restrict shinyApp to one computer

在運行 shinyApp 時,會自動創建 URL。 感謝對我之前問題的評論,我現在了解到這個 URL 不能在線供公眾訪問,但僅限於我的 PC,如果連接到同一個 LAN,則僅限於我的同事(請參閱此處的答案)。 如何將 shinyApp 限制在它運行的一台計算機上,即即使是同一 LAN 的用戶也不能運行該應用程序?

為了使其可重現:

library(shiny)
ui <- fluidPage("Some app")
server <- function(input, output) {}
shinyApp(ui = ui, server = server)

對於這個最小的示例,我們如何避免“Listening on http://...”打印到控制台並允許其他人訪問我的應用程序? 我試圖玩弄runApp() function 的port參數,插入NANULL ,但不知道該怎么做。

背景:我在一家擁有大約 100 座建築物和 5,000 多名員工的大型診所工作。 這取決於員工可以訪問哪些數據(工作單位、職業……)。 我的應用程序包含敏感數據,我不允許訪問我們局域網中的任何人。 事實上,我的應用程序是為特定用例構建的,該用例僅由一個人完成。 因此,我想將應用程序完全限制在一台計算機上。

默認情況下,您的應用只能在 localhost(您的 PC)上訪問。

請參閱?runApp()

主機參數的默認值為:

host = getOption("shiny.host", "127.0.0.1"),

shiny.host變量默認未設置:

getOption("shiny.host")
# NULL

因此,要確保您的應用程序只能從 localhost 訪問,請使用:

runApp(host = "127.0.0.1")

應用於您的示例代碼:

library(shiny)
ui <- fluidPage("Some app")
server <- function(input, output) {}
app <- shinyApp(ui = ui, server = server)
runApp(appDir = app, port = getOption("shiny.port"), host = "127.0.0.1")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM