From 63d8764d0db3e370f495178de7d01e6d67d9d868 Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 1 Jun 2023 09:49:36 +0200 Subject: [PATCH] check cookie --- src/lib/api.js | 52 +++++++++++++++++++++++++++++- src/lib/store.js | 15 +++++++++ src/routes/+layout.server.js | 21 ++++++++++++ src/routes/+page.svelte | 3 ++ src/routes/login/+page.server.js | 34 ++++++++++--------- src/routes/login/+page.svelte | 46 +++++++++----------------- src/routes/profile/+page.server.js | 23 +++++++++++++ src/routes/profile/+page.svelte | 18 +++++------ 8 files changed, 156 insertions(+), 56 deletions(-) create mode 100644 src/lib/store.js create mode 100644 src/routes/+layout.server.js create mode 100644 src/routes/profile/+page.server.js diff --git a/src/lib/api.js b/src/lib/api.js index 8ec2992..b6ac943 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -44,4 +44,54 @@ export async function login(email, password) { //cookie.set("check", "check", { expires: 7 }) console.log(data) return data; -} \ No newline at end of file +} + +export const logout = async (event) => { + //destroy cookie sessionID + const sessionID = event.cookies.get("sessionID"); + console.log("SessionID: ", sessionID); + const apiUrl = import.meta.env.VITE_API_URL; + const res = await fetch(apiUrl + '/logout', { + method: 'POST', + headers: { + }, + }); +}; + +export const getFromAPI = async (event, endpoint, data) => { + const sessionID = event.cookies.get("sessionID"); + const apiUrl = import.meta.env.VITE_API_URL; + const res = await fetch(apiUrl + endpoint, { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + sessionID, + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data) + }); + if (res.ok) { + const data = await res.json(); + return data; + } else { + return null; + } +}; + +export const postToAPI = async (event, endpoint, data) => { + const sessionID = event.cookies.get("sessionID"); + const apiUrl = import.meta.env.VITE_API_URL; + const res = await fetch(apiUrl + endpoint, { + method: 'POST', + headers: { + 'Authorization': 'Bearer ' + sessionID, + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data) + }); + if (res.ok) { + const data = await res.json(); + return data; + } else { + return null; + } +}; \ No newline at end of file diff --git a/src/lib/store.js b/src/lib/store.js new file mode 100644 index 0000000..b477340 --- /dev/null +++ b/src/lib/store.js @@ -0,0 +1,15 @@ +import { writable } from 'svelte/store'; + +// Create a writable store with initial value of null +export const user = writable(null); + +// Function to set user data +export const setUserData = async (sessionID) => { + const userID = await getUserID(sessionID); // your function to fetch user ID based on session ID + user.set({ sessionID, userID }); +}; + +getUserID = async (sessionID) => { + console.log("SessionID: ", sessionID); + return 1234; +}; \ No newline at end of file diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js new file mode 100644 index 0000000..d537121 --- /dev/null +++ b/src/routes/+layout.server.js @@ -0,0 +1,21 @@ +console.log("Hello from layout.server.js"); + +export const load = async (event) => { + const sessionID = event.cookies.get("sessionID"); + console.log("SessionID: ", sessionID); + const apiUrl = import.meta.env.VITE_API_URL; + const res = await fetch(apiUrl + '/edible', { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + sessionID + } + }); + + if (res.ok) { + const data = await res.json(); + const userID = data.userID; + console.log("UserID: ", userID); // Here's the userID + } else { + console.log("Invalid session or other error."); + } +}; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 1673ddf..95833c5 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -4,6 +4,7 @@ -

Profile

+
+ +
+

Profile

+
+ +