Javascript未在R应用程序中从浏览器检索cookie

Javascript未在R应用程序中从浏览器检索cookie,javascript,r,cookies,shiny,shinyjs,Javascript,R,Cookies,Shiny,Shinyjs,我试图在一个闪亮的应用程序中从用户的浏览器中检索cookie,为不同的用户生成不同的UI。为了使用cookie sin R Shinny,我遵循并使用以下javascript代码扩展了shinyjs: shinyjs.getcookie = function(params) { var cookie = Cookies.get("id"); if (typeof cookie !== "undefined") { Shiny.onInputChange("jsco

我试图在一个闪亮的应用程序中从用户的浏览器中检索cookie,为不同的用户生成不同的UI。为了使用cookie sin R Shinny,我遵循并使用以下javascript代码扩展了shinyjs:

shinyjs.getcookie = function(params) {
    var cookie = Cookies.get("id");
    if (typeof cookie !== "undefined") {
        Shiny.onInputChange("jscookie", cookie);
    } else {
        var cookie = "";
        Shiny.onInputChange("jscookie", cookie);
    }
}
shinyjs.setcookie = function(params) {
    Cookies.set("id", escape(params), {
        expires: 0.5
    });
    Shiny.onInputChange("jscookie", params);
}
shinyjs.rmcookie = function(params) {
    Cookies.remove("id");
    Shiny.onInputChange("jscookie", "");
}
我还尝试在一个R模块中设置和获取cookie,这可能很重要

我可以在模块内设置cookie,我可以在浏览器中验证这一点;然而,当我尝试获取cookie时,我总是得到NULL

我这样调用server.R中的模块:

  user_auth_return <- observe({
    callModule(
      user_auth_module,
      "user_auth"
    )
  })
输入正确的密码后:

[1] "5"
[1] "6"
[1] "setting cookie"
[1] "7"
[1] "user"
NULL
[1] "database"
[1] "cookie123"
[1] "4"
感谢您的帮助

编辑:

此后,我发现我可以使用以下代码从server.R检索cookie:

observe({
    js$getcookie()
    print("server cookie")
    print(input$jscookie)
})
因为我仍然无法使用模块中的相同代码访问cookie,所以我认为我已经将问题缩小到变量
input$jscookie
。与在闪亮的服务器上相比,在闪亮的模块中我是否需要以不同的方式获取该值

[1] "5"
[1] "6"
[1] "setting cookie"
[1] "7"
[1] "user"
NULL
[1] "database"
[1] "cookie123"
[1] "4"
observe({
    js$getcookie()
    print("server cookie")
    print(input$jscookie)
})