diff --git a/app/assets/javascripts/discourse/lib/bootstrap-json/index.js b/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
index f062d504f0..802454bf90 100644
--- a/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
+++ b/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
@@ -45,6 +45,14 @@ function head(buffer, bootstrap) {
buffer.push(``);
}
+ if (bootstrap.authentication_data) {
+ buffer.push(
+ ``
+ );
+ }
+
let setupData = "";
Object.keys(bootstrap.setup_data).forEach((sd) => {
let val = bootstrap.setup_data[sd];
diff --git a/app/controllers/bootstrap_controller.rb b/app/controllers/bootstrap_controller.rb
index 4f2f40af89..7c6c519261 100644
--- a/app/controllers/bootstrap_controller.rb
+++ b/app/controllers/bootstrap_controller.rb
@@ -67,7 +67,8 @@ class BootstrapController < ApplicationController
theme_html: create_theme_html,
html_classes: html_classes,
html_lang: html_lang,
- login_path: main_app.login_path
+ login_path: main_app.login_path,
+ authentication_data: authentication_data
}
bootstrap[:extra_locales] = extra_locales if extra_locales.present?
bootstrap[:csrf_token] = form_authenticity_token if current_user
diff --git a/spec/requests/bootstrap_controller_spec.rb b/spec/requests/bootstrap_controller_spec.rb
index cd61f71114..b11e09330f 100644
--- a/spec/requests/bootstrap_controller_spec.rb
+++ b/spec/requests/bootstrap_controller_spec.rb
@@ -81,4 +81,16 @@ describe BootstrapController do
expect(response.status).to eq(200)
expect(response.parsed_body).to be_present
end
+
+ context "authentication data is present" do
+ it "returns authentication data" do
+ cookie_data = 'someauthenticationdata'
+ cookies['authentication_data'] = cookie_data
+
+ get "/bootstrap.json"
+
+ bootstrap = response.parsed_body['bootstrap']
+ expect(bootstrap['authentication_data']).to eq(cookie_data)
+ end
+ end
end