feat(cookies): using HTTP setCookie instead of manually doing it

This commit is contained in:
2025-04-11 11:34:32 +01:00
parent 2302ba5eeb
commit 3960203d26
3 changed files with 24 additions and 16 deletions

View File

@ -12,6 +12,7 @@ import (
"screenmark/screenmark/.gen/haystack/haystack/model" "screenmark/screenmark/.gen/haystack/haystack/model"
"screenmark/screenmark/agents/client" "screenmark/screenmark/agents/client"
"screenmark/screenmark/models" "screenmark/screenmark/models"
"time"
"github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware" "github.com/go-chi/chi/v5/middleware"
@ -310,10 +311,28 @@ func main() {
return return
} }
accessCookie := http.Cookie{
Name: "access",
Value: access,
Expires: time.Now().Add(1 * time.Hour),
Secure: false,
HttpOnly: true,
}
refreshCookie := http.Cookie{
Name: "refresh",
Value: access,
Expires: time.Now().Add(24 * 30 * time.Hour),
Secure: false,
HttpOnly: true,
Path: "/refresh",
}
http.SetCookie(w, &accessCookie) // TODO
http.SetCookie(w, &refreshCookie) // TODO
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
w.Header().Add("Content-Type", "application/json") w.Header().Add("Content-Type", "application/json")
fmt.Fprint(w, string(json))
}) })
log.Println("Listening and serving on port 3040.") log.Println("Listening and serving on port 3040.")

View File

@ -25,8 +25,7 @@ export const Login: Component = () => {
throw new Error("bruh, no code"); throw new Error("bruh, no code");
} }
const res = await postCode(email.toString(), code.toString()); await postCode(email.toString(), code.toString());
console.log(res);
} }
}; };

View File

@ -124,22 +124,12 @@ export const postLogin = async (email: string): Promise<void> => {
await fetch(request); await fetch(request);
}; };
const codeValidator = strictObject({ export const postCode = async (email: string, code: string): Promise<void> => {
access: string(),
refresh: string(),
});
export const postCode = async (
email: string,
code: string,
): Promise<InferOutput<typeof codeValidator>> => {
const request = getBaseRequest({ const request = getBaseRequest({
path: "code", path: "code",
body: JSON.stringify({ email, code }), body: JSON.stringify({ email, code }),
method: "POST", method: "POST",
}); });
const res = await fetch(request).then((res) => res.json()); await fetch(request).then((res) => res.json());
return parse(codeValidator, res);
}; };