update hak akses dan perbaikan api pembuatan tiket

This commit is contained in:
Fanrouver
2026-04-20 09:42:03 +07:00
parent 94ff9f55d9
commit 2bf00eff3c
38 changed files with 2054 additions and 2552 deletions

No files matched your search

+17 -2
View File
@@ -153,6 +153,7 @@ export default defineEventHandler(async (event) => {
// Parse token payloads for immediate availability
let accessTokenPayload;
let idTokenPayloadFull;
let refreshTokenPayload;
try {
accessTokenPayload = JSON.parse(
Buffer.from(tokens.access_token.split(".")[1], "base64").toString(),
@@ -160,12 +161,26 @@ export default defineEventHandler(async (event) => {
idTokenPayloadFull = JSON.parse(
Buffer.from(tokens.id_token.split(".")[1], "base64").toString(),
);
if (tokens.refresh_token) {
refreshTokenPayload = JSON.parse(
Buffer.from(tokens.refresh_token.split(".")[1], "base64").toString(),
);
}
} catch (parseError) {
console.error("❌ Failed to parse token payloads:", parseError);
const errorMsg = encodeURIComponent("Invalid token format");
return sendRedirect(event, `/LoginPage?error=${errorMsg}`);
}
// Determine session expiration from refresh token (preferred) or default
const expiresAt = refreshTokenPayload?.exp
? refreshTokenPayload.exp * 1000
: Date.now() + SESSION_DURATION * 1000;
const createdAt = refreshTokenPayload?.iat
? refreshTokenPayload.iat * 1000
: Date.now();
// Create session data
const sessionData = {
user: {
@@ -177,8 +192,8 @@ export default defineEventHandler(async (event) => {
accessToken: tokens.access_token,
idToken: tokens.id_token,
refreshToken: tokens.refresh_token,
expiresAt: Date.now() + SESSION_DURATION * 1000,
createdAt: Date.now(),
expiresAt: expiresAt,
createdAt: createdAt,
scope: accessTokenPayload.scope || "openid email profile",
status: "authenticated",
};