How can I access cookies and other browser-related session data from within a Shiny app?
With session$clientData, we are able to get other client details like host,port,query param...
Is there any other way to get cookies in shiny app?
To build on the great comments, you can use the js.cookie.js package with the Shiny.OnInputChange() function to return cookies.
An example app is here: https://beta.rstudioconnect.com/iwallace/cookies/
--ui.r--
library(shiny)
library(shinydashboard)
fluidPage(
tags$head(tags$script(src="js.cookie.js")),
# a shiny element to display unformatted text
box(title ="click the gray square to view cookies!", verbatimTextOutput("results"),actionButton("go","click me")),
# javascript code to send data to shiny server
tags$script('
document.getElementById("go").onclick = function() {
var number = Math.random();
Cookies.set(\'name\', \'value\', { expires: 7 });
Cookies.set(\'cookie_2\', \'value\', { expires: 7 });
var my_cookie = Cookies.get();
Shiny.onInputChange("mydata", my_cookie);
};
')
)
--server.r--
library(shiny)
shinyServer(function(input, output,session) {
output$results = renderPrint({
input$mydata
})
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With