@bmc-soft/keycloak-auth 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/_lib/index.d.ts +1 -0
- package/dist/_lib/index.d.ts.map +1 -1
- package/dist/_lib/types/authStage.d.ts +1 -0
- package/dist/_lib/types/authStage.d.ts.map +1 -1
- package/dist/_lib/types/authStage.js +1 -0
- package/dist/_lib/types/authStage.js.map +1 -1
- package/dist/_lib/types/confirmAuthPhase.d.ts +1 -0
- package/dist/_lib/types/confirmAuthPhase.d.ts.map +1 -1
- package/dist/_lib/types/confirmAuthPhase.js +1 -0
- package/dist/_lib/types/confirmAuthPhase.js.map +1 -1
- package/dist/_lib/types/index.d.ts +1 -0
- package/dist/_lib/types/index.d.ts.map +1 -1
- package/dist/_lib/types/successFeedback.d.ts +6 -0
- package/dist/_lib/types/successFeedback.d.ts.map +1 -0
- package/dist/_lib/types/successFeedback.js +2 -0
- package/dist/_lib/types/successFeedback.js.map +1 -0
- package/dist/axios/adapters/KeycloakTokenProvider.js +1 -1
- package/dist/axios/adapters/KeycloakTokenProvider.js.map +1 -1
- package/dist/context/KeycloakConfigContext.d.ts +4 -1
- package/dist/context/KeycloakConfigContext.d.ts.map +1 -1
- package/dist/context/KeycloakConfigContext.js +24 -6
- package/dist/context/KeycloakConfigContext.js.map +1 -1
- package/dist/context/KeycloakInstanceContext.d.ts.map +1 -1
- package/dist/context/KeycloakInstanceContext.js +65 -9
- package/dist/context/KeycloakInstanceContext.js.map +1 -1
- package/dist/context/KeycloakProvider.d.ts +1 -0
- package/dist/context/KeycloakProvider.d.ts.map +1 -1
- package/dist/context/KeycloakProvider.js +2 -2
- package/dist/context/KeycloakProvider.js.map +1 -1
- package/dist/context/TokenContext.d.ts.map +1 -1
- package/dist/context/TokenContext.js +33 -15
- package/dist/context/TokenContext.js.map +1 -1
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +25 -9
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/sessionTermination.d.ts +2 -0
- package/dist/core/sessionTermination.d.ts.map +1 -0
- package/dist/core/sessionTermination.js +38 -0
- package/dist/core/sessionTermination.js.map +1 -0
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/hooks/useKeycloakAuthScreen.d.ts +1 -1
- package/dist/hooks/useKeycloakAuthScreen.d.ts.map +1 -1
- package/dist/hooks/useKeycloakAuthScreen.js +5 -3
- package/dist/hooks/useKeycloakAuthScreen.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/screens/AuthPage/AuthPage.d.ts +2 -1
- package/dist/screens/AuthPage/AuthPage.d.ts.map +1 -1
- package/dist/screens/AuthPage/AuthPage.js +29 -9
- package/dist/screens/AuthPage/AuthPage.js.map +1 -1
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts +4 -0
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts.map +1 -1
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js +119 -19
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js.map +1 -1
- package/dist/storage/credentialStorage.d.ts +2 -0
- package/dist/storage/credentialStorage.d.ts.map +1 -1
- package/dist/storage/credentialStorage.js +55 -0
- package/dist/storage/credentialStorage.js.map +1 -1
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/installStorage.d.ts +3 -0
- package/dist/storage/installStorage.d.ts.map +1 -0
- package/dist/storage/installStorage.js +91 -0
- package/dist/storage/installStorage.js.map +1 -0
- package/dist/storage/tokenStorage.d.ts.map +1 -1
- package/dist/storage/tokenStorage.js.map +1 -1
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.d.ts.map +1 -1
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js +6 -5
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js.map +1 -1
- package/dist/ui/NumberPad/NumberPad.d.ts +1 -0
- package/dist/ui/NumberPad/NumberPad.d.ts.map +1 -1
- package/dist/ui/NumberPad/NumberPad.js +12 -6
- package/dist/ui/NumberPad/NumberPad.js.map +1 -1
- package/dist/ui/PINConfirm/PINConfirm.d.ts +2 -1
- package/dist/ui/PINConfirm/PINConfirm.d.ts.map +1 -1
- package/dist/ui/PINConfirm/PINConfirm.js +85 -23
- package/dist/ui/PINConfirm/PINConfirm.js.map +1 -1
- package/dist/ui/PINIndicator/PINIndicator.d.ts +1 -0
- package/dist/ui/PINIndicator/PINIndicator.d.ts.map +1 -1
- package/dist/ui/PINIndicator/PINIndicator.js +52 -13
- package/dist/ui/PINIndicator/PINIndicator.js.map +1 -1
- package/dist/ui/PINSetup/PINSetup.d.ts.map +1 -1
- package/dist/ui/PINSetup/PINSetup.js +4 -2
- package/dist/ui/PINSetup/PINSetup.js.map +1 -1
- package/dist/ui/PINSetup/stages/BiometryStage.d.ts.map +1 -1
- package/dist/ui/PINSetup/stages/BiometryStage.js +1 -1
- package/dist/ui/PINSetup/stages/BiometryStage.js.map +1 -1
- package/dist/ui/SuccessAuthAnimation/SuccessAuthAnimation.d.ts +11 -0
- package/dist/ui/SuccessAuthAnimation/SuccessAuthAnimation.d.ts.map +1 -0
- package/dist/ui/SuccessAuthAnimation/SuccessAuthAnimation.js +86 -0
- package/dist/ui/SuccessAuthAnimation/SuccessAuthAnimation.js.map +1 -0
- package/dist/ui/SuccessAuthAnimation/index.d.ts +2 -0
- package/dist/ui/SuccessAuthAnimation/index.d.ts.map +1 -0
- package/dist/ui/SuccessAuthAnimation/index.js +2 -0
- package/dist/ui/SuccessAuthAnimation/index.js.map +1 -0
- package/dist/ui/WebViewLogin/WebViewLogin.d.ts.map +1 -1
- package/dist/ui/WebViewLogin/WebViewLogin.js +117 -10
- package/dist/ui/WebViewLogin/WebViewLogin.js.map +1 -1
- package/dist/ui/WebViewLogout/WebViewLogout.js +4 -4
- package/dist/ui/WebViewLogout/WebViewLogout.js.map +1 -1
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts +4 -0
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts.map +1 -1
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js +39 -7
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js.map +1 -1
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenContext.js","sourceRoot":"","sources":["../../src/context/TokenContext.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenContext.js","sourceRoot":"","sources":["../../src/context/TokenContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAgDnD,cAAM,SAAU,YAAW,eAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;gBAG5D,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,EACzC,WAAW,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAM9C,qBAAqB,IAAI,eAAe;IAIxC,cAAc,CAAC,OAAO,EAAE,oBAAoB;IAItC,KAAK,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjE,2BAA2B,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa1E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6B5E,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI7E,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,WAAW,CAAC,OAAO,CAAC,EAAE;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM;CAW7E;AAED,eAAe,SAAS,CAAC"}
|
package/dist/core/adapter.js
CHANGED
|
@@ -73,15 +73,31 @@ class RNAdapter {
|
|
|
73
73
|
return readTokenResponse(tokenRes, 'exchange');
|
|
74
74
|
}
|
|
75
75
|
async refreshTokens(tokenUrl, params) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
if (this.client.__refreshTokensPromise) {
|
|
77
|
+
return this.client.__refreshTokensPromise;
|
|
78
|
+
}
|
|
79
|
+
this.client.__refreshTokensPromise = (async () => {
|
|
80
|
+
const body = await createTokenRequestBody(params, this.initOptions);
|
|
81
|
+
const tokenRes = await fetch(tokenUrl, {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
headers: {
|
|
84
|
+
'Content-type': 'application/x-www-form-urlencoded',
|
|
85
|
+
},
|
|
86
|
+
body,
|
|
87
|
+
});
|
|
88
|
+
try {
|
|
89
|
+
return await readTokenResponse(tokenRes, 'refresh');
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
this.client.__lastTokenRefreshError =
|
|
93
|
+
error instanceof Error ? error : new Error(String(error));
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
this.client.__refreshTokensPromise = undefined;
|
|
98
|
+
}
|
|
99
|
+
})();
|
|
100
|
+
return this.client.__refreshTokensPromise;
|
|
85
101
|
}
|
|
86
102
|
async fetchUserProfile(profileUrl, token) {
|
|
87
103
|
return await fetchJSON(profileUrl, token);
|
package/dist/core/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAaA,OAAO,YAAY,MAAM,WAAW,CAAC;AAErC,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { KeycloakReactNativeClient };
|
|
|
3
3
|
export { LocalStorage } from './storage';
|
|
4
4
|
export { OFFLINE_ACCESS_SCOPE, getUrlHost, isInternalNetworkUrl, isIpAddressHost, resolveBackgroundReauthConfig, shouldShowBackgroundReauth, withOfflineAccessScope, } from './sessionPolicy';
|
|
5
5
|
export type { BackgroundReauthConfig, BackgroundReauthCheck } from './sessionPolicy';
|
|
6
|
-
export type { KeycloakConfig, KeycloakConfigWith2FA, RNKeycloakInitOptions, KeycloakLoginOptions, KeycloakTokens, TokenUpdateResult, KeycloakProfile, AuthState, InitRecoveryStrategy, } from './types';
|
|
6
|
+
export type { KeycloakConfig, KeycloakConfigWith2FA, RNKeycloakInitOptions, KeycloakLoginOptions, KeycloakTokens, TokenUpdateResult, KeycloakProfile, AuthState, InitRecoveryStrategy, StoredTokenInitPolicy, } from './types';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,UAAU,CAAC;AAMjD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAC,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AACnF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,UAAU,CAAC;AAMjD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAC,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AACnF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTermination.d.ts","sourceRoot":"","sources":["../../src/core/sessionTermination.ts"],"names":[],"mappings":"AA8BA,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASxE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const SESSION_TERMINATION_MARKERS = [
|
|
2
|
+
'invalid_grant',
|
|
3
|
+
'refresh token expired',
|
|
4
|
+
'refresh token has expired',
|
|
5
|
+
'token is not active',
|
|
6
|
+
'session not active',
|
|
7
|
+
'offline token is missing',
|
|
8
|
+
'offline user session not found',
|
|
9
|
+
'unauthorized_client',
|
|
10
|
+
'invalid client',
|
|
11
|
+
'invalid client credentials',
|
|
12
|
+
"session doesn't have required client",
|
|
13
|
+
];
|
|
14
|
+
const NETWORK_ERROR_MARKERS = [
|
|
15
|
+
'network request failed',
|
|
16
|
+
'failed to fetch',
|
|
17
|
+
'networkerror',
|
|
18
|
+
'internet',
|
|
19
|
+
'timed out',
|
|
20
|
+
'timeout',
|
|
21
|
+
];
|
|
22
|
+
function getErrorText(error) {
|
|
23
|
+
if (error instanceof Error) {
|
|
24
|
+
return error.message.toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
return String(error).toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
export function isKeycloakSessionTerminatedError(error) {
|
|
29
|
+
const text = getErrorText(error);
|
|
30
|
+
if (SESSION_TERMINATION_MARKERS.some(marker => text.includes(marker))) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
if (NETWORK_ERROR_MARKERS.some(marker => text.includes(marker))) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=sessionTermination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTermination.js","sourceRoot":"","sources":["../../src/core/sessionTermination.ts"],"names":[],"mappings":"AAAA,MAAM,2BAA2B,GAAG;IAClC,eAAe;IACf,uBAAuB;IACvB,2BAA2B;IAC3B,qBAAqB;IACrB,oBAAoB;IACpB,0BAA0B;IAC1B,gCAAgC;IAChC,qBAAqB;IACrB,gBAAgB;IAChB,4BAA4B;IAC5B,sCAAsC;CACvC,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,wBAAwB;IACxB,iBAAiB;IACjB,cAAc;IACd,UAAU;IACV,WAAW;IACX,SAAS;CACV,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export interface RNKeycloakInitOptions extends KeycloakInitOptions {
|
|
|
20
20
|
clientSecret?: string;
|
|
21
21
|
getClientSecret?: () => string | undefined | Promise<string | undefined>;
|
|
22
22
|
}
|
|
23
|
+
export interface StoredTokenInitPolicy {
|
|
24
|
+
deferStoredTokensUntilRefresh?: boolean;
|
|
25
|
+
}
|
|
23
26
|
export interface TokenUpdateResult {
|
|
24
27
|
token: string;
|
|
25
28
|
accessToken?: string;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAE5D,YAAY,EAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAC,CAAC;AAQpE,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAK3D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAK1C,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,wBAAwB,CAAC;AAKrE,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAEhE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAEhF,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAKD,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAE5D,YAAY,EAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAC,CAAC;AAQpE,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAK3D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAK1C,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,wBAAwB,CAAC;AAKrE,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAEhE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAEhF,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,qBAAqB;IAMpC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAKD,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeycloakAuthScreen.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeycloakAuthScreen.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useKeycloakAuthScreen.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeycloakAuthScreen.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,4BAA4B;IAK3C,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAMD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,2BAA2B,CA8D7B"}
|
|
@@ -4,7 +4,7 @@ import { credentialStorage, tokenStorage } from '../storage';
|
|
|
4
4
|
export function useKeycloakAuthScreen(options = {}) {
|
|
5
5
|
const { isInitialized } = useKeycloakInstance();
|
|
6
6
|
const { shouldShowConfirm } = options;
|
|
7
|
-
const [screen, setScreen] = useState(
|
|
7
|
+
const [screen, setScreen] = useState('resolving');
|
|
8
8
|
const [isLoading, setIsLoading] = useState(true);
|
|
9
9
|
const [error, setError] = useState(null);
|
|
10
10
|
const resolveScreen = useCallback(async () => {
|
|
@@ -16,7 +16,8 @@ export function useKeycloakAuthScreen(options = {}) {
|
|
|
16
16
|
tokenStorage.hasTokens(),
|
|
17
17
|
credentialStorage.hasPIN(),
|
|
18
18
|
]);
|
|
19
|
-
|
|
19
|
+
const result = hasTokens && hasPIN ? 'confirm' : 'login';
|
|
20
|
+
return result;
|
|
20
21
|
}, [shouldShowConfirm]);
|
|
21
22
|
useEffect(() => {
|
|
22
23
|
if (!isInitialized) {
|
|
@@ -25,6 +26,7 @@ export function useKeycloakAuthScreen(options = {}) {
|
|
|
25
26
|
let mounted = true;
|
|
26
27
|
const run = async () => {
|
|
27
28
|
try {
|
|
29
|
+
setScreen('resolving');
|
|
28
30
|
setIsLoading(true);
|
|
29
31
|
setError(null);
|
|
30
32
|
const result = await resolveScreen();
|
|
@@ -51,7 +53,7 @@ export function useKeycloakAuthScreen(options = {}) {
|
|
|
51
53
|
};
|
|
52
54
|
}, [isInitialized, resolveScreen]);
|
|
53
55
|
return {
|
|
54
|
-
screen: isInitialized ? screen :
|
|
56
|
+
screen: isInitialized ? screen : 'resolving',
|
|
55
57
|
isLoading: !isInitialized || isLoading,
|
|
56
58
|
error,
|
|
57
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeycloakAuthScreen.js","sourceRoot":"","sources":["../../src/hooks/useKeycloakAuthScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAsB3D,MAAM,UAAU,qBAAqB,CACnC,UAAwC,EAAE;IAE1C,MAAM,EAAC,aAAa,EAAC,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,EAAC,iBAAiB,EAAC,GAAG,OAAO,CAAC;IAEpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"useKeycloakAuthScreen.js","sourceRoot":"","sources":["../../src/hooks/useKeycloakAuthScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAsB3D,MAAM,UAAU,qBAAqB,CACnC,UAAwC,EAAE;IAE1C,MAAM,EAAC,aAAa,EAAC,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,EAAC,iBAAiB,EAAC,GAAG,OAAO,CAAC;IAEpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,WAAW,CAAC,CAAC;IACtE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAiC,EAAE;QACxE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,YAAY,CAAC,SAAS,EAAE;YACxB,iBAAiB,CAAC,MAAM,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC;gBACH,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtE,IAAI,OAAO,EAAE,CAAC;oBACZ,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACpB,SAAS,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,EAAE,CAAC;QAEN,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAEnC,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;QAC5C,SAAS,EAAE,CAAC,aAAa,IAAI,SAAS;QACtC,KAAK;KACN,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'react-native-get-random-values';
|
|
2
2
|
import KeycloakReactNativeClient from './core/client';
|
|
3
|
-
export type { KeycloakConfig, KeycloakConfigWith2FA, KeycloakTokens, RNKeycloakInitOptions, KeycloakLoginOptions, TokenUpdateResult, KeycloakProfile, AuthState, InitRecoveryStrategy, } from './core/types';
|
|
3
|
+
export type { KeycloakConfig, KeycloakConfigWith2FA, KeycloakTokens, RNKeycloakInitOptions, KeycloakLoginOptions, TokenUpdateResult, KeycloakProfile, AuthState, InitRecoveryStrategy, StoredTokenInitPolicy, } from './core/types';
|
|
4
|
+
export type { SuccessFeedbackConfig } from './_lib';
|
|
4
5
|
export { KeycloakReactNativeClient };
|
|
5
6
|
export { KeycloakProvider, useKeycloakTheme } from './context';
|
|
6
7
|
export type { KeycloakProviderProps, KeycloakTheme, KeycloakThemeButtonProps, KeycloakThemeIconButtonProps, } from './context';
|
|
@@ -8,7 +9,7 @@ export { useKeycloakAuth, useToken, useReauth, useKeycloakAuthScreen } from './h
|
|
|
8
9
|
export type { UseKeycloakAuthResult, KeycloakAuthScreen, UseKeycloakAuthScreenOptions, UseKeycloakAuthScreenResult, } from './hooks';
|
|
9
10
|
export { tokenStorage, credentialStorage } from './storage';
|
|
10
11
|
export type { TokenData, StoredCredentials } from './storage';
|
|
11
|
-
export { WebViewLogin, WebViewLogout, NumberPad, PINIndicator, PINSetup, PINConfirm, LogoutButtonIcon, LogoutButtonText, } from './ui';
|
|
12
|
+
export { WebViewLogin, WebViewLogout, NumberPad, PINIndicator, PINSetup, PINConfirm, SuccessAuthAnimation, LogoutButtonIcon, LogoutButtonText, } from './ui';
|
|
12
13
|
export { AuthPage, ConfirmAuthPage } from './screens';
|
|
13
14
|
export { ReauthBottomSheet } from './widgets';
|
|
14
15
|
export { setupAxiosInterceptors, useAxiosInterceptors } from './axios';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,gCAAgC,CAAC;AAExC,OAAO,yBAAyB,MAAM,eAAe,CAAC;AAGtD,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,gCAAgC,CAAC;AAExC,OAAO,yBAAyB,MAAM,eAAe,CAAC;AAGtD,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AAGnC,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAC;AACpF,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC1D,YAAY,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAG5D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,eAAe,EAAC,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAC;AACrE,YAAY,EAAC,uBAAuB,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAC1E,YAAY,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { KeycloakReactNativeClient };
|
|
|
4
4
|
export { KeycloakProvider, useKeycloakTheme } from './context';
|
|
5
5
|
export { useKeycloakAuth, useToken, useReauth, useKeycloakAuthScreen } from './hooks';
|
|
6
6
|
export { tokenStorage, credentialStorage } from './storage';
|
|
7
|
-
export { WebViewLogin, WebViewLogout, NumberPad, PINIndicator, PINSetup, PINConfirm, LogoutButtonIcon, LogoutButtonText, } from './ui';
|
|
7
|
+
export { WebViewLogin, WebViewLogout, NumberPad, PINIndicator, PINSetup, PINConfirm, SuccessAuthAnimation, LogoutButtonIcon, LogoutButtonText, } from './ui';
|
|
8
8
|
export { AuthPage, ConfirmAuthPage } from './screens';
|
|
9
9
|
export { ReauthBottomSheet } from './widgets';
|
|
10
10
|
export { setupAxiosInterceptors, useAxiosInterceptors } from './axios';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,gCAAgC,CAAC;AAExC,OAAO,yBAAyB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,gCAAgC,CAAC;AAExC,OAAO,yBAAyB,MAAM,eAAe,CAAC;AAiBtD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AAGnC,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAS7D,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAC;AASpF,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAI1D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,eAAe,EAAC,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAGrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ImageSourcePropType, ViewStyle } from 'react-native';
|
|
3
|
-
import { type AuthStage } from '../../_lib';
|
|
3
|
+
import { type AuthStage, type SuccessFeedbackConfig } from '../../_lib';
|
|
4
4
|
interface AuthPageProps {
|
|
5
5
|
onSuccess?: (token: string) => void;
|
|
6
6
|
onError?: (error: Error) => void;
|
|
@@ -13,6 +13,7 @@ interface AuthPageProps {
|
|
|
13
13
|
style?: ViewStyle;
|
|
14
14
|
paddingTop?: number;
|
|
15
15
|
paddingBottom?: number;
|
|
16
|
+
successFeedback?: SuccessFeedbackConfig;
|
|
16
17
|
}
|
|
17
18
|
export declare const AuthPage: React.FC<AuthPageProps>;
|
|
18
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthPage.d.ts","sourceRoot":"","sources":["../../../src/screens/AuthPage/AuthPage.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthPage.d.ts","sourceRoot":"","sources":["../../../src/screens/AuthPage/AuthPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAQ,mBAAmB,EAAoB,SAAS,EAAC,MAAM,cAAc,CAAC;AAErF,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAMlF,UAAU,aAAa;IAKrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAKpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAKjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAM3C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;IAM7C,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAM7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAKlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAkBD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsL5C,CAAC"}
|
|
@@ -1,33 +1,40 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { Image, StyleSheet, View } from 'react-native';
|
|
3
3
|
import { AUTH_STAGE } from '../../_lib';
|
|
4
4
|
import { useKeycloakTheme } from '../../context';
|
|
5
5
|
import { useKeycloakAuth } from '../../hooks';
|
|
6
6
|
import { credentialStorage, tokenStorage } from '../../storage';
|
|
7
|
-
import { PINSetup, WebViewLogin } from '../../ui';
|
|
8
|
-
export const AuthPage = ({ onSuccess, onError, onStageChange, logo, logoHeight = 80, logoWidth = 80, showBiometryPrompt = true, pinLength = 4, style, paddingTop, paddingBottom, }) => {
|
|
7
|
+
import { PINSetup, SuccessAuthAnimation, WebViewLogin } from '../../ui';
|
|
8
|
+
export const AuthPage = ({ onSuccess, onError, onStageChange, logo, logoHeight = 80, logoWidth = 80, showBiometryPrompt = true, pinLength = 4, style, paddingTop, paddingBottom, successFeedback, }) => {
|
|
9
9
|
const { colors: { background: backgroundColor }, LoaderComponent, } = useKeycloakTheme();
|
|
10
10
|
const [stage, setStage] = useState(AUTH_STAGE.LOGIN);
|
|
11
11
|
const [loginData, setLoginData] = useState(null);
|
|
12
|
+
const [successToken, setSuccessToken] = useState(null);
|
|
13
|
+
const successHandledRef = useRef(false);
|
|
14
|
+
const finalSuccessCalledRef = useRef(false);
|
|
12
15
|
const { keycloak, login } = useKeycloakAuth();
|
|
13
16
|
useEffect(() => {
|
|
14
17
|
onStageChange?.(stage);
|
|
15
18
|
}, [onStageChange, stage]);
|
|
16
19
|
const handleLoginSuccess = useCallback((data) => {
|
|
17
|
-
console.log('[AuthPage] Login success, saving data and proceeding to PIN setup');
|
|
18
20
|
setLoginData(data);
|
|
19
21
|
setStage(AUTH_STAGE.SETUP_PIN);
|
|
20
22
|
}, []);
|
|
21
23
|
const handleSaveCredentialsSuccess = useCallback(async (url) => {
|
|
22
24
|
try {
|
|
23
|
-
console.log('[AuthPage] Saving PIN and exchanging authorization code for tokens...');
|
|
24
25
|
setStage(AUTH_STAGE.PROCESSING);
|
|
25
26
|
await login({ url });
|
|
26
|
-
console.log('[AuthPage] Tokens obtained successfully');
|
|
27
27
|
const accessToken = keycloak?.token ?? (await tokenStorage.getToken());
|
|
28
28
|
if (accessToken) {
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
if (successFeedback?.enabled === false) {
|
|
30
|
+
onSuccess?.(accessToken);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!successHandledRef.current) {
|
|
34
|
+
successHandledRef.current = true;
|
|
35
|
+
setSuccessToken(accessToken);
|
|
36
|
+
setStage(AUTH_STAGE.SUCCESS);
|
|
37
|
+
}
|
|
31
38
|
}
|
|
32
39
|
else {
|
|
33
40
|
throw new Error('[AuthPage] No access token after login');
|
|
@@ -38,7 +45,16 @@ export const AuthPage = ({ onSuccess, onError, onStageChange, logo, logoHeight =
|
|
|
38
45
|
console.error('[AuthPage] Token exchange error:', error);
|
|
39
46
|
onError?.(error);
|
|
40
47
|
}
|
|
41
|
-
}, [keycloak, login, onSuccess, onError]);
|
|
48
|
+
}, [keycloak, login, onSuccess, onError, successFeedback?.enabled]);
|
|
49
|
+
const handleSuccessAnimationFinish = useCallback(() => {
|
|
50
|
+
if (finalSuccessCalledRef.current) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
finalSuccessCalledRef.current = true;
|
|
54
|
+
if (successToken) {
|
|
55
|
+
onSuccess?.(successToken);
|
|
56
|
+
}
|
|
57
|
+
}, [onSuccess, successToken]);
|
|
42
58
|
const savePIN = useCallback(async (pin) => {
|
|
43
59
|
if (!loginData || !keycloak) {
|
|
44
60
|
const error = new Error('[AuthPage] No login data or keycloak instance available');
|
|
@@ -83,6 +99,10 @@ export const AuthPage = ({ onSuccess, onError, onStageChange, logo, logoHeight =
|
|
|
83
99
|
{stage === AUTH_STAGE.PROCESSING && (<View style={[StyleSheet.absoluteFillObject, { backgroundColor }]}>
|
|
84
100
|
<LoaderComponent />
|
|
85
101
|
</View>)}
|
|
102
|
+
|
|
103
|
+
{stage === AUTH_STAGE.SUCCESS && (<View style={[StyleSheet.absoluteFillObject, { backgroundColor }]}>
|
|
104
|
+
<SuccessAuthAnimation onFinish={handleSuccessAnimationFinish} title={successFeedback?.title} durationMs={successFeedback?.durationMs}/>
|
|
105
|
+
</View>)}
|
|
86
106
|
</View>);
|
|
87
107
|
};
|
|
88
108
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthPage.js","sourceRoot":"","sources":["../../../src/screens/AuthPage/AuthPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthPage.js","sourceRoot":"","sources":["../../../src/screens/AuthPage/AuthPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ImageSourcePropType, ViewStyle } from 'react-native';
|
|
3
|
+
import { type SuccessFeedbackConfig } from '../../_lib';
|
|
3
4
|
export type ConfirmAuthMode = 'login' | 'unlock' | 'reauth';
|
|
4
5
|
interface ConfirmAuthPageProps {
|
|
5
6
|
onSuccess?: () => void;
|
|
6
7
|
onError?: (error: Error) => void;
|
|
8
|
+
onSessionExpired?: (error: Error) => void;
|
|
7
9
|
onLogout?: () => void;
|
|
8
10
|
mode?: ConfirmAuthMode;
|
|
9
11
|
logoutText?: string;
|
|
@@ -15,7 +17,9 @@ interface ConfirmAuthPageProps {
|
|
|
15
17
|
autoShowBiometry?: boolean;
|
|
16
18
|
title?: string;
|
|
17
19
|
description?: string;
|
|
20
|
+
layout?: 'screen' | 'sheet';
|
|
18
21
|
style?: ViewStyle;
|
|
22
|
+
successFeedback?: SuccessFeedbackConfig;
|
|
19
23
|
}
|
|
20
24
|
export declare const ConfirmAuthPage: React.FC<ConfirmAuthPageProps>;
|
|
21
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmAuthPage.d.ts","sourceRoot":"","sources":["../../../src/screens/ConfirmAuthPage/ConfirmAuthPage.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfirmAuthPage.d.ts","sourceRoot":"","sources":["../../../src/screens/ConfirmAuthPage/ConfirmAuthPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAEL,mBAAmB,EAOnB,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,OAAO,EAA6C,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYnG,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAW5D,UAAU,oBAAoB;IAI5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAKvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAMjC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAK1C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAStB,IAAI,CAAC,EAAE,eAAe,CAAC;IAMvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;IAE7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AASD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgW1D,CAAC"}
|