Kundendaten Rechnung Typ Aktualisiert

This commit is contained in:
Moritz Utcke
2024-01-13 14:03:24 +07:00
parent 97bc8bedbb
commit 5809cfc0ef
8 changed files with 125 additions and 108 deletions

View File

@@ -0,0 +1,42 @@
import { createCaller } from "#lib/caller";
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "#lib/constants";
import type { AstroGlobal } from "astro";
import moment from "moment";
export async function validateAccessTokenServer(astro: Readonly<AstroGlobal<Record<string, any>>>) {
const accessToken = astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME).value;
const refreshToken = astro.cookies.get(API_REFRESH_TOKEN_COOKIE_NAME).value;
if (accessToken) {
return true;
}
// Wir haben keinen Access Token mehr, vielleicht ist dieser ausgelaufen.
// Schauen wir mal, ob wir einen Refresh Token haben.
if (!refreshToken) {
// Wir haben keinen Refresh Token, also müssen wir uns neu anmelden.
return false;
}
// Wir haben einen Refresh Token, also versuchen wir uns damit anzumelden.
// Wenn das klappt, dann haben wir auch einen neuen Access Token.
// Wenn das nicht klappt, dann müssen wir uns neu anmelden.
try {
const { accessToken: newAccessToken, exp } = await createCaller(astro).v1.benutzer.getAccessToken({
refreshToken
})
astro.cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, newAccessToken, {
domain: `.${astro.url.host}`,
path: "/",
expires: moment.unix(exp).toDate()
});
return true;
} catch (e) {
astro.cookies.delete(API_ACCESS_TOKEN_COOKIE_NAME);
astro.cookies.delete(API_REFRESH_TOKEN_COOKIE_NAME);
return false;
}
}

View File

@@ -1,83 +0,0 @@
import Cookies from "js-cookie";
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "./constants";
import { client } from "src/trpc";
import { AstroCookies, AstroGlobal } from "astro";
import { createCaller } from "./caller";
export async function validateAccessTokenServer(astro: Readonly<AstroGlobal<Record<string, any>>>) {
const accessToken = astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME).value;
const refreshToken = astro.cookies.get(API_REFRESH_TOKEN_COOKIE_NAME).value;
if (accessToken) {
return true;
}
// Wir haben keinen Access Token mehr, vielleicht ist dieser ausgelaufen.
// Schauen wir mal, ob wir einen Refresh Token haben.
if (!refreshToken) {
// Wir haben keinen Refresh Token, also müssen wir uns neu anmelden.
return false;
}
// Wir haben einen Refresh Token, also versuchen wir uns damit anzumelden.
// Wenn das klappt, dann haben wir auch einen neuen Access Token.
// Wenn das nicht klappt, dann müssen wir uns neu anmelden.
try {
const { accessToken: newAccessToken, exp } = await createCaller(astro).v1.benutzer.getAccessToken.query({
refreshToken
})
const options = {
domain: `.${window.location.hostname}`,
path: "/",
expires: exp
}
astro.cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, newAccessToken, options);
return true;
} catch (e) {
astro.cookies.delete(API_ACCESS_TOKEN_COOKIE_NAME);
astro.cookies.delete(API_REFRESH_TOKEN_COOKIE_NAME);
return false;
}
}
export async function validateAccessTokenClient() {
const accessToken = Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME);
const refreshToken = Cookies.get(API_REFRESH_TOKEN_COOKIE_NAME);
if (accessToken) {
return true;
}
// Wir haben keinen Access Token mehr, vielleicht ist dieser ausgelaufen.
// Schauen wir mal, ob wir einen Refresh Token haben.
if (!refreshToken) {
// Wir haben keinen Refresh Token, also müssen wir uns neu anmelden.
return false;
}
// Wir haben einen Refresh Token, also versuchen wir uns damit anzumelden.
// Wenn das klappt, dann haben wir auch einen neuen Access Token.
// Wenn das nicht klappt, dann müssen wir uns neu anmelden.
try {
const { accessToken: newAccessToken, exp } = await client.v1.benutzer.getAccessToken.query({
refreshToken
})
const options = {
domain: `.${window.location.hostname}`,
path: "/",
expires: exp
}
Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, newAccessToken, options);
return true;
} catch (e) {
Cookies.remove(API_ACCESS_TOKEN_COOKIE_NAME);
Cookies.remove(API_REFRESH_TOKEN_COOKIE_NAME);
return false;
}
}

View File

@@ -0,0 +1,43 @@
import Cookies from "js-cookie";
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "./constants";
import { client } from "src/trpc";
export async function validateAccessTokenClient() {
const accessToken = Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME);
const refreshToken = Cookies.get(API_REFRESH_TOKEN_COOKIE_NAME);
if (accessToken) {
return true;
}
// Wir haben keinen Access Token mehr, vielleicht ist dieser ausgelaufen.
// Schauen wir mal, ob wir einen Refresh Token haben.
if (!refreshToken) {
// Wir haben keinen Refresh Token, also müssen wir uns neu anmelden.
return false;
}
// Wir haben einen Refresh Token, also versuchen wir uns damit anzumelden.
// Wenn das klappt, dann haben wir auch einen neuen Access Token.
// Wenn das nicht klappt, dann müssen wir uns neu anmelden.
try {
const { accessToken: newAccessToken, exp } = await client.v1.benutzer.getAccessToken.query({
refreshToken
})
const options = {
domain: `.${window.location.hostname}`,
path: "/",
expires: exp
}
Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, newAccessToken, options);
return true;
} catch (e) {
Cookies.remove(API_ACCESS_TOKEN_COOKIE_NAME);
Cookies.remove(API_REFRESH_TOKEN_COOKIE_NAME);
return false;
}
}