Skip to content

Commit 5a7b726

Browse files
committed
fix: destroy with sveltekitSessionHandle's cookie options
1 parent 83c744a commit 5a7b726

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/lib/session.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ export default class Session {
217217
*/
218218
async destroy(): Promise<void> {
219219
await this.#sessionOptions.store.destroy(this.#id);
220-
this.#event.cookies.delete(this.#cookieName, { path: this.#cookie.path });
220+
// Specify the cookie option set in the sveltekitSessionHandle options.
221+
// However, maxAge is set to 0 on the SvelteKit side.
222+
// cf. https://github.com/sveltejs/kit/blob/%40sveltejs/package%402.3.1/packages/kit/src/runtime/server/cookie.js#L126
223+
this.#event.cookies.delete(this.#cookieName, { ...this.#cookie });
221224
}
222225
}

tests/unit/session.test.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,10 @@ describe('Session', () => {
405405
expect(mockStore.destroy).toBeCalledTimes(1);
406406
expect(mockStore.destroy).toBeCalledWith(session.id);
407407
expect(mockEvent.cookies.delete).toBeCalledTimes(1);
408-
expect(mockEvent.cookies.delete).toBeCalledWith(session.cookieName, { path: '/' });
408+
expect(mockEvent.cookies.delete).toBeCalledWith(session.cookieName, {
409+
path: '/',
410+
maxAge: 600
411+
});
409412
});
410413
});
411414

@@ -423,7 +426,10 @@ describe('Session', () => {
423426
expect(mockStore.destroy).toBeCalledTimes(1);
424427
expect(mockStore.destroy).toBeCalledWith(session.id);
425428
expect(mockEvent.cookies.delete).toBeCalledTimes(1);
426-
expect(mockEvent.cookies.delete).toBeCalledWith(session.cookieName, { path: '/' });
429+
expect(mockEvent.cookies.delete).toBeCalledWith(session.cookieName, {
430+
path: '/',
431+
maxAge: 600
432+
});
427433
});
428434
});
429435

0 commit comments

Comments
 (0)