Skip to content

Commit db742bf

Browse files
authored
Merge pull request #135 from kinde-oss/feat/reauth
2 parents 21df927 + 7332872 commit db742bf

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
],
9898
"private": false,
9999
"dependencies": {
100-
"@kinde/js-utils": "0.14.0"
100+
"@kinde/js-utils": "0.16.0-7"
101101
},
102102
"packageManager": "[email protected]+sha512.0486e394640d3c1fb3c9d43d49cf92879ff74f8516959c235308f5a8f62e2e19528a65cdc2a3058f587cde71eba3d5b56327c8c33a97e4c4051ca48a10ca2d5f"
103103
}

src/state/KindeProvider.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { KindeContext, KindeContextProps } from "./KindeContext";
3838
import { getRedirectUrl } from "../utils/getRedirectUrl";
3939
import packageJson from "../../package.json";
4040
import { ErrorProps, LogoutOptions } from "./types";
41-
import { RefreshTokenResult } from "@kinde/js-utils/dist/utils/token/refreshToken";
41+
import { RefreshTokenResult } from "@kinde/js-utils";
4242
// TODO: need to look for old token store and convert.
4343
storageSettings.keyPrefix = "";
4444

@@ -168,6 +168,7 @@ export const KindeProvider = ({
168168
audience,
169169
clientId,
170170
...options,
171+
supportsReauth: true,
171172
state: base64UrlEncode(
172173
JSON.stringify({
173174
kinde: { event: AuthEvent.login },
@@ -207,6 +208,7 @@ export const KindeProvider = ({
207208
...optionsState,
208209
}),
209210
),
211+
supportsReauth: true,
210212
audience: (await storeState.memoryStorage.getSessionItem(
211213
storeState.LocalKeys.audience,
212214
)) as string,
@@ -402,7 +404,22 @@ export const KindeProvider = ({
402404
const params = new URLSearchParams(window.location.search);
403405
let returnedState: StateWithKinde;
404406
let kindeState: KindeState;
405-
if (!params.has("code")) {
407+
408+
if (params.has("error")) {
409+
const errorCode = params.get("error");
410+
if (errorCode?.toLowerCase() === "login_link_expired") {
411+
const reauthState = params.get("reauth_state");
412+
if (reauthState) {
413+
login({ reauthState: reauthState });
414+
}
415+
return;
416+
}
417+
setState((val: ProviderState) => ({ ...val, isLoading: false }));
418+
return;
419+
}
420+
421+
const hasCode = params.has("code");
422+
if (!hasCode) {
406423
try {
407424
const user = await getUserProfile();
408425
if (user) {

0 commit comments

Comments
 (0)