Skip to content

Commit 236fe03

Browse files
authored
[CSL-2699] Add secure and samesite (#43)
1 parent cbe5a48 commit 236fe03

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

spec/006-cookies.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,42 @@ describe('ConstructorioID', function () {
2222
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
2323
expect(cookieData).to.match(/mewantcookie=meeatcookie; expires=.*; path=\//);
2424
});
25+
26+
it('should create a cookie without secure flag using defaults', function () {
27+
var session = new ConstructorioID();
28+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
29+
expect(cookieData).to.not.match(/mewantcookie=meeatcookie; expires=.*; path=\/; secure/);
30+
});
31+
32+
it('should create a cookie with secure flag', function () {
33+
var session = new ConstructorioID({ cookie_secure: true });
34+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
35+
expect(cookieData).to.match(/mewantcookie=meeatcookie; expires=.*; path=\/; secure/);
36+
});
37+
38+
it('should create a cookie without samesite flag using defaults', function () {
39+
var session = new ConstructorioID();
40+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
41+
expect(cookieData).to.not.match(/mewantcookie=meeatcookie; expires=.*; path=\/; samesite/);
42+
});
43+
44+
it('should create a cookie with samesite flag', function () {
45+
var session = new ConstructorioID({ cookie_samesite: 'strict' });
46+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
47+
expect(cookieData).to.match(/mewantcookie=meeatcookie; expires=.*; path=\/; samesite=strict/);
48+
});
49+
50+
it('should create a cookie with samesite flag', function () {
51+
var session = new ConstructorioID({ cookie_samesite: 'lax' });
52+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
53+
expect(cookieData).to.match(/mewantcookie=meeatcookie; expires=.*; path=\/; samesite=lax/);
54+
});
55+
56+
it('should create a cookie with samesite and secure flags', function () {
57+
var session = new ConstructorioID({ cookie_samesite: 'strict', cookie_secure: true });
58+
var cookieData = session.set_cookie('mewantcookie', 'meeatcookie');
59+
expect(cookieData).to.match(/mewantcookie=meeatcookie; expires=.*; path=\/; secure; samesite=strict/);
60+
});
2561
});
2662

2763
describe('get_cookie', function () {

src/constructorio-id.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
cookie_name_session_id: 'ConstructorioID_session_id',
1212
cookie_name_session_data: 'ConstructorioID_session',
1313
cookie_domain: null,
14+
cookie_secure: null, // null, true
15+
cookie_samesite: null, // null, Lax, Strict
1416
cookie_days_to_live: 365,
1517
local_name_client_id: '_constructorio_search_client_id',
1618
local_name_session_id: '_constructorio_search_session_id',
@@ -61,6 +63,12 @@
6163
if (this.cookie_domain) {
6264
cookie_data += '; domain=' + this.cookie_domain;
6365
}
66+
if (this.cookie_secure) {
67+
cookie_data += '; secure';
68+
}
69+
if (this.cookie_samesite) {
70+
cookie_data += '; samesite=' + this.cookie_samesite;
71+
}
6472
document.cookie = cookie_data;
6573

6674
// For testing purposes

0 commit comments

Comments
 (0)