R 在应用程序中重定向

R 在应用程序中重定向,r,redirect,shiny,httr,R,Redirect,Shiny,Httr,我正在尝试使我的闪亮应用程序将用户重定向到另一个页面。我正在使用httr发送GET请求,查看用户是否登录。如果他没有,我想把他转到另一个链接 我可以只使用R/shinny吗,或者我需要一些额外的库吗 样本: library(httr) library(shiny) shinyServer(function(input, output) { rv <- reactiveValues() rv$mytoken = session$request$token observeEvent(inpu

我正在尝试使我的闪亮应用程序将用户重定向到另一个页面。我正在使用
httr
发送
GET
请求,查看用户是否登录。如果他没有,我想把他转到另一个链接

我可以只使用R/shinny吗,或者我需要一些额外的库吗

样本:

library(httr)
library(shiny)
shinyServer(function(input, output) {
rv <- reactiveValues()
rv$mytoken = session$request$token

observeEvent(input$button1, {
  rv$a <- GET("my.url:3405/authtoken", 
              add_headers(
                .headers = c("token" = rv$mytoken)
              ))
  if (rv$a$status_code == 200) {
  } else {
    # redirect magic
  }
})
}

shinyUI(fluidPage(
  actionButton(button1, "btn")
))
库(httr)
图书馆(闪亮)
shinyServer(功能(输入、输出){

rv如果不是
true

library(shiny)

jscode <- "Shiny.addCustomMessageHandler('mymessage', function(message) {window.location = 'http://www.google.com';});"

ui <- fluidPage(
  tags$head(tags$script(jscode)),     
  checkboxInput("Redirect","Redirect",value = T)
)

server <- function(input, output, session) {

  observeEvent(input$Redirect,{
    if(!input$Redirect){
      session$sendCustomMessage("mymessage", "mymessage")
    }
  })
}

shinyApp(ui,server)
库(闪亮)

jscode您可以提供带有用户名和密码的示例代码吗?它以不同的方式工作:我在
session$request
环境中有auth令牌,我用
GET
检查服务器上是否相同。因此,我根据收到的响应状态代码重定向用户。如果需要,我将提供一些代码,您仍然可以提供没有它的示例应用程序,所以当
false
那么重定向就足够了?与往常一样,您可以使它正常工作:)我一直在寻找的东西,谢谢!似乎你“强迫”它重定向用户。shiny默认情况下不支持这种行为吗?在
ui
中可以很容易地绑定按钮和链接,但你需要将其从服务器发送回重定向,
shiny
团队添加了
sendCustomMessage
>这是非常有用的。所以只要浏览一下,你会很快找到它。看一看
粘贴
是的,是的,我很糟糕,我现在就处理它。再次感谢。我只是用
window.top.location.href
而不是
window.location
,效果很好。祝你平安!