react-redux-django-auth 1.4.9 → 1.5.0

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.
@@ -51,6 +51,8 @@ var useAuthicatedUser = function (location) {
51
51
  return __generator(this, function (_a) {
52
52
  switch (_a.label) {
53
53
  case 0:
54
+ if (isAuthenticated)
55
+ return [2 /*return*/];
54
56
  setIsAuthLoading(true);
55
57
  return [4 /*yield*/, dispatch(checkAuthenticated())];
56
58
  case 1:
@@ -36,7 +36,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  };
37
37
  import * as Keychain from 'react-native-keychain';
38
38
  import AsyncStorage from '@react-native-async-storage/async-storage';
39
+ import { Platform } from 'react-native';
39
40
  var ACCESS_KEY = 'access';
41
+ var REFRESH_KEY = 'refresh'; // Fallback for web
40
42
  export var storage = {
41
43
  /**
42
44
  * 🔑 Access token (fast access)
@@ -56,16 +58,14 @@ export var storage = {
56
58
  var credentials;
57
59
  return __generator(this, function (_a) {
58
60
  switch (_a.label) {
59
- case 0: return [4 /*yield*/, Keychain.getGenericPassword({
60
- authenticationPrompt: {
61
- title: 'Authenticate to continue',
62
- },
63
- })];
64
- case 1:
61
+ case 0:
62
+ if (!(Platform.OS === 'web')) return [3 /*break*/, 2];
63
+ return [4 /*yield*/, AsyncStorage.getItem(REFRESH_KEY)];
64
+ case 1: return [2 /*return*/, _a.sent()];
65
+ case 2: return [4 /*yield*/, Keychain.getGenericPassword()];
66
+ case 3:
65
67
  credentials = _a.sent();
66
- if (!credentials)
67
- return [2 /*return*/, null];
68
- return [2 /*return*/, credentials.password]; // refresh token
68
+ return [2 /*return*/, credentials ? credentials.password : null];
69
69
  }
70
70
  });
71
71
  }); },
@@ -78,17 +78,25 @@ export var storage = {
78
78
  case 0: return [4 /*yield*/, AsyncStorage.setItem(ACCESS_KEY, access)];
79
79
  case 1:
80
80
  _a.sent();
81
- if (!refresh) return [3 /*break*/, 3];
82
- return [4 /*yield*/, Keychain.setGenericPassword('refreshToken', // username (not important)
83
- refresh, {
84
- accessControl: Keychain.ACCESS_CONTROL.BIOMETRY_ANY_OR_DEVICE_PASSCODE,
85
- accessible: Keychain.ACCESSIBLE.WHEN_UNLOCKED,
86
- // authenticationType: Keychain.AUTHENTICATION_TYPE.BIOMETRICS,
87
- })];
81
+ if (!refresh) return [3 /*break*/, 5];
82
+ if (!(Platform.OS === 'web')) return [3 /*break*/, 3];
83
+ // Use localStorage or AsyncStorage for web fallback
84
+ return [4 /*yield*/, AsyncStorage.setItem(REFRESH_KEY, refresh)];
88
85
  case 2:
86
+ // Use localStorage or AsyncStorage for web fallback
89
87
  _a.sent();
90
- _a.label = 3;
91
- case 3: return [2 /*return*/];
88
+ return [3 /*break*/, 5];
89
+ case 3:
90
+ // Native Keychain logic
91
+ return [4 /*yield*/, Keychain.setGenericPassword('refreshToken', refresh, {
92
+ accessControl: Keychain.ACCESS_CONTROL.BIOMETRY_ANY_OR_DEVICE_PASSCODE,
93
+ accessible: Keychain.ACCESSIBLE.WHEN_UNLOCKED,
94
+ })];
95
+ case 4:
96
+ // Native Keychain logic
97
+ _a.sent();
98
+ _a.label = 5;
99
+ case 5: return [2 /*return*/];
92
100
  }
93
101
  });
94
102
  }); },
@@ -101,10 +109,16 @@ export var storage = {
101
109
  case 0: return [4 /*yield*/, AsyncStorage.removeItem(ACCESS_KEY)];
102
110
  case 1:
103
111
  _a.sent();
104
- return [4 /*yield*/, Keychain.resetGenericPassword()];
112
+ if (!(Platform.OS === 'web')) return [3 /*break*/, 3];
113
+ return [4 /*yield*/, AsyncStorage.removeItem(REFRESH_KEY)];
105
114
  case 2:
106
115
  _a.sent();
107
- return [2 /*return*/];
116
+ return [3 /*break*/, 5];
117
+ case 3: return [4 /*yield*/, Keychain.resetGenericPassword()];
118
+ case 4:
119
+ _a.sent();
120
+ _a.label = 5;
121
+ case 5: return [2 /*return*/];
108
122
  }
109
123
  });
110
124
  }); },
@@ -1,6 +1,5 @@
1
1
  import { configureStore } from '@reduxjs/toolkit';
2
2
  import rootReducer from '../auth-core/reducers';
3
- // 1. Import your storage (ensure you have storage.ts and storage.native.ts)
4
3
  import { storage } from './storage/nativeStorage';
5
4
  var initialState = {};
6
5
  var store = configureStore({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-redux-django-auth",
3
- "version": "1.4.9",
3
+ "version": "1.5.0",
4
4
  "description": "A React Redux Authentication system for django app built with TypeScript.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",