@explorins/pers-sdk-react-native 2.1.19 → 2.1.20
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/dist/index.js +32 -7
- package/dist/index.js.map +1 -1
- package/dist/providers/PersSDKProvider.d.ts.map +1 -1
- package/dist/providers/PersSDKProvider.js +7 -0
- package/dist/providers/react-native-auth-provider.d.ts.map +1 -1
- package/dist/providers/react-native-auth-provider.js +9 -4
- package/package.json +2 -2
- package/src/providers/PersSDKProvider.tsx +8 -0
- package/src/providers/react-native-auth-provider.ts +9 -4
package/dist/index.js
CHANGED
|
@@ -9948,11 +9948,24 @@ class DefaultAuthProvider {
|
|
|
9948
9948
|
this.config = config;
|
|
9949
9949
|
this.authTypeCache = null;
|
|
9950
9950
|
this.authType = config.authType || exports.AccountOwnerType.USER;
|
|
9951
|
-
// Determine if DPoP can be enabled
|
|
9952
|
-
|
|
9951
|
+
// Determine if DPoP can be enabled:
|
|
9952
|
+
// 1. Custom crypto provider is supplied (e.g., React Native), OR
|
|
9953
|
+
// 2. IndexedDB is available for browser CryptoKey persistence
|
|
9954
|
+
const hasCustomCryptoProvider = !!config.dpop?.cryptoProvider;
|
|
9955
|
+
const hasIndexedDB = this.canEnableDPoP();
|
|
9956
|
+
const canUseDPoP = hasCustomCryptoProvider || hasIndexedDB;
|
|
9953
9957
|
this.dpopEnabled = !!(config.dpop?.enabled && canUseDPoP);
|
|
9958
|
+
// Debug logging for DPoP configuration
|
|
9959
|
+
console.log('[DefaultAuthProvider] DPoP config:', {
|
|
9960
|
+
requestedEnabled: config.dpop?.enabled ?? false,
|
|
9961
|
+
hasCustomCryptoProvider,
|
|
9962
|
+
hasIndexedDB,
|
|
9963
|
+
canUseDPoP,
|
|
9964
|
+
finalEnabled: this.dpopEnabled,
|
|
9965
|
+
cryptoProviderType: config.dpop?.cryptoProvider?.constructor?.name || 'none'
|
|
9966
|
+
});
|
|
9954
9967
|
if (config.dpop?.enabled && !canUseDPoP) {
|
|
9955
|
-
console.warn('[DefaultAuthProvider] DPoP disabled: IndexedDB not available. CryptoKey persistence requires IndexedDB.');
|
|
9968
|
+
console.warn('[DefaultAuthProvider] DPoP disabled: IndexedDB not available and no custom crypto provider supplied. CryptoKey persistence requires IndexedDB or a custom provider.');
|
|
9956
9969
|
}
|
|
9957
9970
|
const storage = config.storage || this.createStorage();
|
|
9958
9971
|
this.tokenManager = new AuthTokenManager(storage);
|
|
@@ -19416,10 +19429,15 @@ function createReactNativeAuthProvider(projectKey, config = {}) {
|
|
|
19416
19429
|
enabled: dpop.enabled ?? true,
|
|
19417
19430
|
cryptoProvider: dpop.cryptoProvider
|
|
19418
19431
|
} : undefined;
|
|
19419
|
-
//
|
|
19420
|
-
|
|
19421
|
-
|
|
19422
|
-
|
|
19432
|
+
// Always log DPoP config for debugging (critical for mobile auth)
|
|
19433
|
+
console.log('[ReactNativeAuthProvider] Config:', {
|
|
19434
|
+
platform: reactNative.Platform.OS,
|
|
19435
|
+
isWebPlatform,
|
|
19436
|
+
dpopEnabled: dpopConfig?.enabled ?? false,
|
|
19437
|
+
hasCryptoProvider: !!dpopConfig?.cryptoProvider,
|
|
19438
|
+
cryptoProviderType: dpopConfig?.cryptoProvider?.constructor?.name || 'none',
|
|
19439
|
+
storageType: tokenStorage.constructor.name
|
|
19440
|
+
});
|
|
19423
19441
|
// Return DefaultAuthProvider configured with platform-appropriate storage
|
|
19424
19442
|
return new DefaultAuthProvider({
|
|
19425
19443
|
authType,
|
|
@@ -19746,6 +19764,13 @@ const PersSDKProvider = ({ children, config }) => {
|
|
|
19746
19764
|
if (reactNative.Platform.OS !== 'web' && isDpopEnabled && !dpopSettings.cryptoProvider) {
|
|
19747
19765
|
dpopSettings.cryptoProvider = new ReactNativeDPoPProvider();
|
|
19748
19766
|
}
|
|
19767
|
+
// Log DPoP settings before creating auth provider
|
|
19768
|
+
console.log('[PersSDKProvider] DPoP settings:', {
|
|
19769
|
+
platform: reactNative.Platform.OS,
|
|
19770
|
+
isDpopEnabled,
|
|
19771
|
+
hasCryptoProvider: !!dpopSettings.cryptoProvider,
|
|
19772
|
+
cryptoProviderType: dpopSettings.cryptoProvider?.constructor?.name || 'none'
|
|
19773
|
+
});
|
|
19749
19774
|
// Create platform-aware auth provider if not provided
|
|
19750
19775
|
let authProvider;
|
|
19751
19776
|
if (config.authProvider) {
|