feat(cookies): using HTTP setCookie instead of manually doing it
This commit is contained in:
@ -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.")
|
||||||
|
@ -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);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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);
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user