Fix validation fo google tokens
This commit is contained in:
@@ -60,5 +60,24 @@ export const POST: RequestHandler = async ({ request }) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* validate token */
|
||||||
|
if (action === 'validate') {
|
||||||
|
if (!refreshToken) {
|
||||||
|
console.log('No refreshToken provided');
|
||||||
|
return json({ valid: false });
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
console.log('Validating refreshToken:', refreshToken);
|
||||||
|
const oAuth2Client = getOAuthClient();
|
||||||
|
oAuth2Client.setCredentials({ refresh_token: refreshToken });
|
||||||
|
await oAuth2Client.getAccessToken(); // This will throw if invalid
|
||||||
|
console.log('Token is valid');
|
||||||
|
return json({ valid: true });
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Token validation error:', err);
|
||||||
|
return json({ valid: false, error: (err as Error).message });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new Response('Bad request', { status: 400 });
|
return new Response('Bad request', { status: 400 });
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,9 +9,21 @@
|
|||||||
let subject = '';
|
let subject = '';
|
||||||
let body = '';
|
let body = '';
|
||||||
|
|
||||||
onMount(() => {
|
async function validateToken(token: string): Promise<boolean> {
|
||||||
|
if (!token) return false;
|
||||||
|
const res = await fetch('/private/api/gmail', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ action: 'validate', refreshToken: token })
|
||||||
|
});
|
||||||
|
if (!res.ok) return false;
|
||||||
|
const data = await res.json();
|
||||||
|
return !!data.valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
onMount(async () => {
|
||||||
refreshToken = localStorage.getItem('gmail_refresh_token') ?? '';
|
refreshToken = localStorage.getItem('gmail_refresh_token') ?? '';
|
||||||
authorized = !!refreshToken;
|
authorized = await validateToken(refreshToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ⇢ redirects straight to Google via server 302 */
|
/* ⇢ redirects straight to Google via server 302 */
|
||||||
|
|||||||
Reference in New Issue
Block a user