update hak akses dan perbaikan api pembuatan tiket
This commit is contained in:
No files matched your search
@@ -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",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user