From d6b99b2058f99d4ebdd5b173224fedce952dbe33 Mon Sep 17 00:00:00 2001 From: steel <mael.acier@ensiie.fr> Date: Sun, 5 May 2024 20:18:54 +0200 Subject: [PATCH] fix default impl --- package.json | 2 +- src/lib/default.ts | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8b4fdd1..4440b79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@arise/aidc-sveltekit", - "version": "0.2.2", + "version": "0.2.3", "type": "module", "scripts": { "dev": "vite dev", diff --git a/src/lib/default.ts b/src/lib/default.ts index f589442..3386c2d 100644 --- a/src/lib/default.ts +++ b/src/lib/default.ts @@ -22,7 +22,7 @@ class DefaultLucia extends LuciaWrapper<DatabaseUser> { this.db.exec(`CREATE TABLE IF NOT EXISTS user ( id TEXT NOT NULL PRIMARY KEY, subject TEXT NOT NULL UNIQUE, - claims JSON NOT NULL + claims TEXT NOT NULL )`); this.db.exec(`CREATE TABLE IF NOT EXISTS session ( @@ -34,16 +34,22 @@ class DefaultLucia extends LuciaWrapper<DatabaseUser> { )`); } - getUser(subject: string) { - return this.db + getUser(subject: string): DatabaseUser | undefined { + const user = this.db .prepare("SELECT * FROM user WHERE subject = ?") - .get(subject) as DatabaseUser | undefined; + .get(subject) as InternalUser | undefined; + if (!user) return undefined; + return { + id: user.id, + subject: user.subject, + claims: JSON.parse(user.claims), + }; } createUser(subject: string, userId: string, claims: IdTokenClaims) { this.db .prepare("INSERT INTO user (id, subject, claims) VALUES (?, ?, ?)") - .run(userId, subject, claims); + .run(userId, subject, JSON.stringify(claims)); } } @@ -57,6 +63,11 @@ declare module "lucia" { } } +interface InternalUser { + id: string; + subject: string; + claims: string; +} export interface DatabaseUser { id: string; subject: string; -- GitLab