fix: update the ESI refresh-token with the latest after authentication (#26)

This commit is contained in:
Patric Stout
2023-11-26 19:56:31 +01:00
committed by GitHub
parent 92298f2ad8
commit c1b0feb1fd
2 changed files with 10 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
export async function getAccessToken(refreshToken: string): Promise<string | undefined> {
export async function getAccessToken(refreshToken: string): Promise<{ accessToken?: string, refreshToken?: string }> {
let response;
try {
response = await fetch('https://esi.eveship.fit/', {
@@ -8,13 +8,13 @@ export async function getAccessToken(refreshToken: string): Promise<string | und
}),
});
} catch (e) {
return undefined;
return {};
}
if (response.status !== 201) {
return undefined;
return {};
}
const data = await response.json();
return data.access_token;
return { accessToken: data.access_token, refreshToken: data.refresh_token };
};

View File

@@ -107,8 +107,8 @@ export const EsiProvider = (props: EsiProps) => {
return esiPrivate.accessTokens[characterId];
}
const accessToken = await getAccessToken(esiPrivate.refreshTokens[characterId]);
if (accessToken === undefined) {
const { accessToken, refreshToken } = await getAccessToken(esiPrivate.refreshTokens[characterId]);
if (accessToken === undefined || refreshToken === undefined) {
console.log('Failed to get access token');
return undefined;
}
@@ -117,6 +117,10 @@ export const EsiProvider = (props: EsiProps) => {
setEsiPrivate((oldEsiPrivate: EsiPrivate) => {
return {
...oldEsiPrivate,
refreshTokens: {
...oldEsiPrivate.refreshTokens,
[characterId]: refreshToken,
},
accessToken: {
...oldEsiPrivate.accessTokens,
[characterId]: accessToken,