据我理解,开源版本的闪亮服务器不支持身份验证。
我们有一个使用WebSEAL代理服务对用户进行身份验证并将其访问传递到web应用程序的环境。
我们希望向经过身份验证的用户公开Shinyapp,其内容依赖于用户组成员资格。WebSEAL能够将Headers中的iv_user和iv_group变量设置为通过连接传递给shinyapp,但开放源码闪亮服务器似乎无法访问它们(即通过会话$clientData对象)。
我想知道是否有人想出了一个开放源码闪亮服务器应用程序访问HTTP头来确定用户和组的方法。
发布于 2018-02-16 06:37:46
如果您只想访问headers,UI可以是一个函数,它接受实现鲁克规格的请求对象的单个参数。
library(shiny)
ui <- function(request) {
print(as.list(request))
# get HTTP headers like request$HTTP_HEADER_NAME (all caps)
fluidPage(
tags$pre(
paste(capture.output(as.list(request)), collapse = "\n")
)
)
}
server <- function(input, output) {
}
shinyApp(ui, server)根据HTTP头提供不同页面的一种方法可能是这样的-
unauthorizedPage <- function() {
"Unauthorized"
}
memberPage <- function() {
fluidPage(
"Member page"
)
}
ui <- function(request) {
# serve memberPage() if request contains header `iv_group: member`
# otherwise serve unauthorizedPage()
if (!identical(request$HTTP_IV_GROUP, "member"))
return(unauthorizedPage())
memberPage()
}
server <- function(input, output) {
}
shinyApp(ui, server)https://stackoverflow.com/questions/48651824
复制相似问题