UNPKG

supakit

Version:

A Supabase auth helper for SvelteKit.

38 lines (37 loc) 1.71 kB
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); } } }