Skip to content

Commit 1e25793

Browse files
authored
Merge pull request #237 from boris-dibrov/feat/expose-auth-refresh-method
feat(oidc): expose manual token refresh via AuthService.refresh()
2 parents d18f359 + 4ec9caa commit 1e25793

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

lib/auth/useAuth.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ const oidc_login = async (): Promise<void> => {
6060
}
6161
};
6262

63+
const oidc_refresh = async (): Promise<void> => {
64+
try {
65+
console.debug("[Auth] Refreshing token using OIDC");
66+
await userManager?.signinSilent();
67+
} catch (e) {
68+
console.error("[Auth] Error refreshing token using OIDC: ", e);
69+
}
70+
};
71+
6372
const oidc_logout = async (): Promise<void> => {
6473
// Capture the id_token before removing the user, as Okta and other providers expect id_token_hint
6574
const user: User | null | undefined = await userManager?.getUser();
@@ -152,6 +161,7 @@ export interface AuthService {
152161
getToken: () => Promise<string | undefined>;
153162
getUsernameAndPassword: () => UsernameAndPassword | undefined;
154163
login: (username: string, password: string) => Promise<void>;
164+
refresh: () => Promise<void>;
155165
logout: () => Promise<void>;
156166
}
157167

@@ -184,6 +194,7 @@ export const useAuth: () => AuthService = (): AuthService => {
184194
getUsernameAndPassword: () => undefined,
185195
getUsername: oidc_getUsername,
186196
login: oidc_login,
197+
refresh: oidc_refresh,
187198
logout: oidc_logout
188199
};
189200
} else if (config.type === "basic") {
@@ -195,6 +206,7 @@ export const useAuth: () => AuthService = (): AuthService => {
195206
getUsernameAndPassword: basic_getUsernameAndPassword,
196207
getUsername: basic_getUsername,
197208
login: basic_login,
209+
refresh: () => Promise.resolve(),
198210
logout: basic_logout
199211
};
200212
}
@@ -208,6 +220,7 @@ export const useAuth: () => AuthService = (): AuthService => {
208220
getUsername: () => Promise.resolve(undefined),
209221
getUsernameAndPassword: () => undefined,
210222
login: () => Promise.resolve(),
223+
refresh: () => Promise.resolve(),
211224
logout: () => Promise.resolve()
212225
};
213226
};

0 commit comments

Comments
 (0)