supakit
Version:
A Supabase auth helper for SvelteKit.
38 lines (37 loc) • 1.71 kB
JavaScript
import { getCookieOptions, isAuthToken, isProviderToken, stringToBoolean, testRegEx } from '../utils.js';
export class CookieStorage {
event;
constructor(event) {
this.event = event;
}
getItem(key) {
const cookie = this.event.cookies.get(key) ?? null;
return cookie;
}
setItem(key, value) {
const remember_me_cookie = this.event.cookies.get('supakit-rememberme') ?? 'true';
const remember_me = stringToBoolean(remember_me_cookie);
const { session_cookie_options, remember_me_cookie_options } = getCookieOptions('all', this.event.cookie_options);
if ((!remember_me && (isAuthToken(key) || isProviderToken(key)))) {
this.event.cookies.set(key, value, session_cookie_options);
}
else if (testRegEx(key, 'remember_me')) {
this.event.cookies.set(key, value, remember_me_cookie_options);
}
else {
this.event.cookies.set(key, value, this.event.cookie_options);
}
}
removeItem(key) {
const { expire_cookie_options } = getCookieOptions('expire', this.event.cookie_options);
this.event.cookies.delete(key, expire_cookie_options);
if (isAuthToken(key)) {
if (this.event.cookies.get('sb-provider-token'))
this.event.cookies.delete('sb-provider-token', expire_cookie_options);
if (this.event.cookies.get('sb-provider-refresh-token'))
this.event.cookies.delete('sb-provider-refresh-token', expire_cookie_options);
if (this.event.cookies.get('sb-temp-session'))
this.event.cookies.delete('sb-temp-session', expire_cookie_options);
}
}
}