Mirror Job-Info-Test PB token validation flow
This commit is contained in:
+31
-2
@@ -303,11 +303,35 @@
|
||||
return pb.authStore.token;
|
||||
}
|
||||
|
||||
async function validateCurrentToken() {
|
||||
await ensurePocketBaseClient();
|
||||
const token = getCurrentToken();
|
||||
const resp = await fetch('/api/auth/validate-pb-token', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ pbToken: token }),
|
||||
});
|
||||
const data = await resp.json().catch(() => ({}));
|
||||
if (!resp.ok || data?.valid !== true) {
|
||||
const details = data?.details
|
||||
? (typeof data.details === 'string' ? data.details : JSON.stringify(data.details))
|
||||
: '';
|
||||
const context = data?.tokenContext ? ` tokenContext=${JSON.stringify(data.tokenContext)}` : '';
|
||||
throw new Error(details
|
||||
? `${data?.error || 'PocketBase token invalid'}: ${details}${context}`
|
||||
: `${data?.error || 'PocketBase token invalid'}${context}`);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
async function loadUsers() {
|
||||
await ensurePocketBaseClient();
|
||||
const token = getCurrentToken();
|
||||
const resp = await fetch('/api/tasks/users', {
|
||||
headers: { 'x-pb-token': token },
|
||||
headers: {
|
||||
'x-pb-token': token,
|
||||
'Authorization': `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
const data = await resp.json().catch(() => ({}));
|
||||
if (!resp.ok || !data?.success) {
|
||||
@@ -389,7 +413,10 @@
|
||||
? `/api/tasks/list?${query.toString()}`
|
||||
: '/api/tasks/list';
|
||||
const resp = await fetch(url, {
|
||||
headers: { 'x-pb-token': token },
|
||||
headers: {
|
||||
'x-pb-token': token,
|
||||
'Authorization': `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
const data = await resp.json().catch(() => ({}));
|
||||
if (!resp.ok || !data?.success) {
|
||||
@@ -433,6 +460,8 @@
|
||||
|
||||
await updatePbStatus();
|
||||
if (client.authStore?.isValid) {
|
||||
const tokenValidation = await validateCurrentToken();
|
||||
writeOutput({ message: 'PocketBase token validated', user: tokenValidation?.user || null, tokenContext: tokenValidation?.tokenContext || undefined });
|
||||
await loadUsers();
|
||||
await loadTasks();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user