set token when fetching user (#1851)

* set token when fetching user

* clean up
This commit is contained in:
Kurt Hutten
2024-03-22 10:32:41 +11:00
committed by GitHub
parent 0e916cfd5b
commit 44d1c29801

View File

@ -57,9 +57,10 @@ export const authMachine = createMachine<UserContext, Events>(
onDone: [
{
target: 'loggedIn',
actions: assign({
user: (context, event) => event.data,
}),
actions: assign((context, event) => ({
user: event.data.user,
token: event.data.token || context.token,
})),
},
],
onError: [
@ -133,12 +134,28 @@ async function getUser(context: UserContext) {
token: context.token,
hostname: VITE_KC_API_BASE_URL,
}).catch((err) => console.error('error from Tauri getUser', err))
const tokenPromise = !isTauri()
? fetch(withBaseURL('/user/api-tokens?limit=1'), {
method: 'GET',
credentials: 'include',
headers,
})
.then(async (res) => {
const result: Models['ApiTokenResultsPage_type'] = await res.json()
return result.items[0].token
})
.catch((err) => console.error('error from Browser getUser', err))
: context.token
const user = await userPromise
const token = await tokenPromise
if ('error_code' in user) throw new Error(user.message)
return user
return {
user,
token,
}
}
function getCookie(cname: string): string {