fix: update the ESI refresh-token with the latest after authentication (#26)
This commit is contained in:
@@ -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 };
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user