Skip to content

Commit 7b43190

Browse files
Merge pull request #323 from abhinav-koppula/httpOnlySecureCookie
[Security]-Adding HttpOnly and Secure flags while setting up sensitive cookies
2 parents e689944 + 5a336e1 commit 7b43190

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

web-assets/js/setupAuth0.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ const authSetup = function () {
182182
});
183183
//console.log(tcsso.includes(tcSSOCookie));
184184
console.log("storing token");
185-
setCookie(tcJWTCookie, idToken, cookieExpireIn);
186-
setCookie(v3JWTCookie, idToken, cookieExpireIn);
187-
setCookie(tcSSOCookie, tcsso, cookieExpireIn);
185+
setCookie(tcJWTCookie, idToken, cookieExpireIn, true);
186+
setCookie(v3JWTCookie, idToken, cookieExpireIn, true);
187+
setCookie(tcSSOCookie, tcsso, cookieExpireIn, true);
188188
} else {
189189
console.log("User not active");
190190
host = registerSuccessUrl;
@@ -258,14 +258,19 @@ const authSetup = function () {
258258
return decodeURIComponent(escape(atob(output))) //polyfill https://github.com/davidchambers/Base64.js
259259
}
260260

261-
function setCookie(cname, cvalue, exMins) {
261+
function setCookie(cname, cvalue, exMins, secure = false) {
262262
const cdomain = getHostDomain();
263263

264264
let d = new Date();
265265
d.setTime(d.getTime() + (exMins * 60 * 1000));
266266

267267
let expires = ";expires=" + d.toUTCString();
268-
document.cookie = cname + "=" + cvalue + cdomain + expires + ";path=/";
268+
let cookie = cname + "=" + cvalue + cdomain + expires + ";path=/";
269+
if (secure) {
270+
cookie += "; HttpOnly; Secure";
271+
}
272+
273+
document.cookie = cookie;
269274
}
270275

271276
function getCookie(name) {

web-assets/js/setupAuth0WithRedirect.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -302,13 +302,13 @@ const authSetup = function () {
302302
try {
303303
const exT = getCookieExpiry(idToken);
304304
if (exT) {
305-
setDomainCookie(tcJWTCookie, idToken, exT);
306-
setDomainCookie(v3JWTCookie, idToken, exT);
307-
setDomainCookie(tcSSOCookie, tcsso, exT);
305+
setDomainCookie(tcJWTCookie, idToken, exT, true);
306+
setDomainCookie(v3JWTCookie, idToken, exT, true);
307+
setDomainCookie(tcSSOCookie, tcsso, exT, true);
308308
} else {
309-
setCookie(tcJWTCookie, idToken, cookieExpireIn);
310-
setCookie(v3JWTCookie, idToken, cookieExpireIn);
311-
setCookie(tcSSOCookie, tcsso, cookieExpireIn);
309+
setCookie(tcJWTCookie, idToken, cookieExpireIn, true);
310+
setCookie(v3JWTCookie, idToken, cookieExpireIn, true);
311+
setCookie(tcSSOCookie, tcsso, cookieExpireIn, true);
312312
}
313313
} catch (e) {
314314
logger('Error occured in fecthing token expiry time', e.message);
@@ -400,14 +400,18 @@ const authSetup = function () {
400400
return decodeURIComponent(escape(atob(output))); //polyfill https://github.com/davidchambers/Base64.js
401401
}
402402

403-
function setCookie(cname, cvalue, exMins) {
403+
function setCookie(cname, cvalue, exMins, secure = false) {
404404
const cdomain = getHostDomain();
405405

406406
let d = new Date();
407407
d.setTime(d.getTime() + (exMins * 60 * 1000));
408408

409409
let expires = ";expires=" + d.toUTCString();
410-
document.cookie = cname + "=" + cvalue + cdomain + expires + ";path=/";
410+
let cookie = cname + "=" + cvalue + cdomain + expires + ";path=/";
411+
if (secure) {
412+
cookie += "; HttpOnly; Secure";
413+
}
414+
document.cookie = cookie;
411415
}
412416

413417
function getCookie(name) {
@@ -518,13 +522,13 @@ const authSetup = function () {
518522
try {
519523
const exT = getCookieExpiry(idToken);
520524
if (exT) {
521-
setDomainCookie(tcJWTCookie, idToken, exT);
522-
setDomainCookie(v3JWTCookie, idToken, exT);
523-
setDomainCookie(tcSSOCookie, tcsso, exT);
525+
setDomainCookie(tcJWTCookie, idToken, exT, true);
526+
setDomainCookie(v3JWTCookie, idToken, exT, true);
527+
setDomainCookie(tcSSOCookie, tcsso, exT, true);
524528
} else {
525-
setCookie(tcJWTCookie, idToken, cookieExpireIn);
526-
setCookie(v3JWTCookie, idToken, cookieExpireIn);
527-
setCookie(tcSSOCookie, tcsso, cookieExpireIn);
529+
setCookie(tcJWTCookie, idToken, cookieExpireIn, true);
530+
setCookie(v3JWTCookie, idToken, cookieExpireIn, true);
531+
setCookie(tcSSOCookie, tcsso, cookieExpireIn, true);
528532
}
529533
informIt(success);
530534
} catch (e) {

0 commit comments

Comments
 (0)