set token when fetching user (#1851)
* set token when fetching user * clean up
This commit is contained in:
@ -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 {
|
||||
|
Reference in New Issue
Block a user