react-native-nitro-auth 0.5.5 → 0.5.6
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 +22 -17
- package/android/proguard-rules.pro +7 -1
- package/android/src/main/AndroidManifest.xml +12 -0
- package/android/src/main/cpp/PlatformAuth+Android.cpp +260 -67
- package/android/src/main/java/com/auth/AuthAdapter.kt +217 -146
- package/android/src/main/java/com/auth/GoogleSignInActivity.kt +9 -5
- package/cpp/HybridAuth.cpp +79 -64
- package/cpp/HybridAuth.hpp +9 -7
- package/cpp/JSONSerializer.hpp +3 -0
- package/ios/AuthAdapter.swift +173 -60
- package/ios/PlatformAuth+iOS.mm +10 -3
- package/lib/commonjs/Auth.web.js +50 -10
- package/lib/commonjs/Auth.web.js.map +1 -1
- package/lib/commonjs/index.web.js +30 -12
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/service.js +9 -7
- package/lib/commonjs/service.js.map +1 -1
- package/lib/commonjs/service.web.js +65 -13
- package/lib/commonjs/service.web.js.map +1 -1
- package/lib/commonjs/ui/social-button.js +19 -14
- package/lib/commonjs/ui/social-button.js.map +1 -1
- package/lib/commonjs/ui/social-button.web.js +16 -10
- package/lib/commonjs/ui/social-button.web.js.map +1 -1
- package/lib/commonjs/use-auth.js +13 -5
- package/lib/commonjs/use-auth.js.map +1 -1
- package/lib/commonjs/utils/logger.js +1 -0
- package/lib/commonjs/utils/logger.js.map +1 -1
- package/lib/module/Auth.web.js +50 -10
- package/lib/module/Auth.web.js.map +1 -1
- package/lib/module/global.d.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/service.js +9 -7
- package/lib/module/service.js.map +1 -1
- package/lib/module/service.web.js +65 -13
- package/lib/module/service.web.js.map +1 -1
- package/lib/module/ui/social-button.js +19 -14
- package/lib/module/ui/social-button.js.map +1 -1
- package/lib/module/ui/social-button.web.js +16 -10
- package/lib/module/ui/social-button.web.js.map +1 -1
- package/lib/module/use-auth.js +13 -5
- package/lib/module/use-auth.js.map +1 -1
- package/lib/module/utils/logger.js +1 -0
- package/lib/module/utils/logger.js.map +1 -1
- package/lib/typescript/commonjs/Auth.web.d.ts +5 -1
- package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.web.d.ts +2 -18
- package/lib/typescript/commonjs/service.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/logger.d.ts.map +1 -1
- package/lib/typescript/module/Auth.web.d.ts +5 -1
- package/lib/typescript/module/Auth.web.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/service.d.ts.map +1 -1
- package/lib/typescript/module/service.web.d.ts +2 -18
- package/lib/typescript/module/service.web.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/module/use-auth.d.ts.map +1 -1
- package/lib/typescript/module/utils/logger.d.ts.map +1 -1
- package/package.json +2 -4
- package/src/Auth.web.ts +77 -11
- package/src/global.d.ts +0 -11
- package/src/index.ts +5 -1
- package/src/index.web.ts +6 -1
- package/src/service.ts +9 -7
- package/src/service.web.ts +84 -15
- package/src/ui/social-button.tsx +21 -9
- package/src/ui/social-button.web.tsx +17 -4
- package/src/use-auth.ts +35 -8
- package/src/utils/logger.ts +1 -0
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SocialButton = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var
|
|
9
|
+
var _service = require("../service");
|
|
10
|
+
var _logger = require("../utils/logger.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
13
|
const PROVIDER_LABELS = {
|
|
@@ -32,8 +33,7 @@ const getBackgroundColor = ({
|
|
|
32
33
|
};
|
|
33
34
|
const getTextColor = variant => variant === "white" || variant === "outline" ? "#000000" : "#FFFFFF";
|
|
34
35
|
async function performLogin(provider) {
|
|
35
|
-
|
|
36
|
-
await auth.login(provider);
|
|
36
|
+
await _service.AuthService.login(provider);
|
|
37
37
|
}
|
|
38
38
|
const SocialButton = ({
|
|
39
39
|
provider,
|
|
@@ -56,12 +56,16 @@ const SocialButton = ({
|
|
|
56
56
|
setLoading(true);
|
|
57
57
|
try {
|
|
58
58
|
await performLogin(provider);
|
|
59
|
-
const user =
|
|
59
|
+
const user = _service.AuthService.currentUser;
|
|
60
60
|
if (user) {
|
|
61
61
|
onSuccess?.(user);
|
|
62
62
|
}
|
|
63
63
|
} catch (error) {
|
|
64
|
-
onError
|
|
64
|
+
if (onError) {
|
|
65
|
+
onError(error);
|
|
66
|
+
} else if (__DEV__) {
|
|
67
|
+
_logger.logger.error("SocialButton unhandled error:", error);
|
|
68
|
+
}
|
|
65
69
|
} finally {
|
|
66
70
|
setLoading(false);
|
|
67
71
|
}
|
|
@@ -93,26 +97,21 @@ const SocialButton = ({
|
|
|
93
97
|
children: [provider === "google" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
94
98
|
style: styles.iconPlaceholder,
|
|
95
99
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
96
|
-
style:
|
|
97
|
-
fontSize: 18
|
|
98
|
-
},
|
|
100
|
+
style: styles.iconText,
|
|
99
101
|
children: "G"
|
|
100
102
|
})
|
|
101
103
|
}), provider === "apple" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
102
104
|
style: styles.iconPlaceholder,
|
|
103
105
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
104
|
-
style: {
|
|
105
|
-
fontSize: 18,
|
|
106
|
+
style: [styles.iconText, {
|
|
106
107
|
color: getTextColor(variant)
|
|
107
|
-
},
|
|
108
|
+
}],
|
|
108
109
|
children: "\uF8FF"
|
|
109
110
|
})
|
|
110
111
|
}), provider === "microsoft" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
111
112
|
style: styles.iconPlaceholder,
|
|
112
113
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
113
|
-
style:
|
|
114
|
-
fontSize: 16
|
|
115
|
-
},
|
|
114
|
+
style: styles.microsoftIconText,
|
|
116
115
|
children: "\u229E"
|
|
117
116
|
})
|
|
118
117
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
@@ -151,6 +150,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
151
150
|
text: {
|
|
152
151
|
fontSize: 16,
|
|
153
152
|
fontWeight: "600"
|
|
153
|
+
},
|
|
154
|
+
iconText: {
|
|
155
|
+
fontSize: 18
|
|
156
|
+
},
|
|
157
|
+
microsoftIconText: {
|
|
158
|
+
fontSize: 16
|
|
154
159
|
}
|
|
155
160
|
});
|
|
156
161
|
//# sourceMappingURL=social-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_service","_logger","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PROVIDER_LABELS","google","apple","microsoft","PROVIDER_PRIMARY_BACKGROUND","getBackgroundColor","disabled","variant","provider","getTextColor","performLogin","AuthService","login","SocialButton","borderRadius","style","textStyle","onSuccess","onError","onPress","loading","setLoading","useState","handleLogin","user","currentUser","error","__DEV__","logger","isDisabled","getBorderColor","jsx","Pressable","styles","button","backgroundColor","borderColor","borderWidth","children","View","content","ActivityIndicator","size","color","jsxs","Fragment","iconPlaceholder","Text","iconText","microsoftIconText","text","exports","StyleSheet","create","paddingVertical","paddingHorizontal","minHeight","justifyContent","alignItems","width","flexDirection","marginRight","height","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["ui/social-button.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ exports.SocialButton = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _AuthWeb = require("../Auth.web.js");
|
|
10
|
+
var _logger = require("../utils/logger.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
13
|
const PROVIDER_LABELS = {
|
|
@@ -60,7 +61,11 @@ const SocialButton = ({
|
|
|
60
61
|
onSuccess?.(user);
|
|
61
62
|
}
|
|
62
63
|
} catch (error) {
|
|
63
|
-
onError
|
|
64
|
+
if (onError) {
|
|
65
|
+
onError(error);
|
|
66
|
+
} else if (process.env.NODE_ENV !== "production") {
|
|
67
|
+
_logger.logger.error("SocialButton unhandled error:", error);
|
|
68
|
+
}
|
|
64
69
|
} finally {
|
|
65
70
|
setLoading(false);
|
|
66
71
|
}
|
|
@@ -92,26 +97,21 @@ const SocialButton = ({
|
|
|
92
97
|
children: [provider === "google" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
93
98
|
style: styles.iconPlaceholder,
|
|
94
99
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
95
|
-
style:
|
|
96
|
-
fontSize: 18
|
|
97
|
-
},
|
|
100
|
+
style: styles.iconText,
|
|
98
101
|
children: "G"
|
|
99
102
|
})
|
|
100
103
|
}), provider === "apple" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
101
104
|
style: styles.iconPlaceholder,
|
|
102
105
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
103
|
-
style: {
|
|
104
|
-
fontSize: 18,
|
|
106
|
+
style: [styles.iconText, {
|
|
105
107
|
color: getTextColor(variant)
|
|
106
|
-
},
|
|
108
|
+
}],
|
|
107
109
|
children: "\uF8FF"
|
|
108
110
|
})
|
|
109
111
|
}), provider === "microsoft" && variant !== "primary" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
110
112
|
style: styles.iconPlaceholder,
|
|
111
113
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
112
|
-
style:
|
|
113
|
-
fontSize: 16
|
|
114
|
-
},
|
|
114
|
+
style: styles.microsoftIconText,
|
|
115
115
|
children: "\u229E"
|
|
116
116
|
})
|
|
117
117
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
@@ -150,6 +150,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
150
150
|
text: {
|
|
151
151
|
fontSize: 16,
|
|
152
152
|
fontWeight: "600"
|
|
153
|
+
},
|
|
154
|
+
iconText: {
|
|
155
|
+
fontSize: 18
|
|
156
|
+
},
|
|
157
|
+
microsoftIconText: {
|
|
158
|
+
fontSize: 16
|
|
153
159
|
}
|
|
154
160
|
});
|
|
155
161
|
//# sourceMappingURL=social-button.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AuthWeb","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PROVIDER_LABELS","google","apple","microsoft","PROVIDER_PRIMARY_BACKGROUND","getBackgroundColor","disabled","variant","provider","getTextColor","performLogin","AuthModule","login","SocialButton","borderRadius","style","textStyle","onSuccess","onError","onPress","loading","setLoading","useState","handleLogin","user","currentUser","error","isDisabled","getBorderColor","jsx","Pressable","styles","button","backgroundColor","borderColor","borderWidth","children","View","content","ActivityIndicator","size","color","jsxs","Fragment","iconPlaceholder","Text","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AuthWeb","_logger","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PROVIDER_LABELS","google","apple","microsoft","PROVIDER_PRIMARY_BACKGROUND","getBackgroundColor","disabled","variant","provider","getTextColor","performLogin","AuthModule","login","SocialButton","borderRadius","style","textStyle","onSuccess","onError","onPress","loading","setLoading","useState","handleLogin","user","currentUser","error","process","env","NODE_ENV","logger","isDisabled","getBorderColor","jsx","Pressable","styles","button","backgroundColor","borderColor","borderWidth","children","View","content","ActivityIndicator","size","color","jsxs","Fragment","iconPlaceholder","Text","iconText","microsoftIconText","text","exports","StyleSheet","create","paddingVertical","paddingHorizontal","minHeight","justifyContent","alignItems","width","flexDirection","marginRight","height","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["ui/social-button.web.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/use-auth.js
CHANGED
|
@@ -9,8 +9,10 @@ var _service = require("./service");
|
|
|
9
9
|
var _authError = require("./utils/auth-error.js");
|
|
10
10
|
const areScopesEqual = (left, right) => {
|
|
11
11
|
if (left.length !== right.length) return false;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const sortedLeft = [...left].sort();
|
|
13
|
+
const sortedRight = [...right].sort();
|
|
14
|
+
for (let i = 0; i < sortedLeft.length; i += 1) {
|
|
15
|
+
if (sortedLeft[i] !== sortedRight[i]) return false;
|
|
14
16
|
}
|
|
15
17
|
return true;
|
|
16
18
|
};
|
|
@@ -143,7 +145,7 @@ function useAuth() {
|
|
|
143
145
|
}
|
|
144
146
|
}, [syncStateFromService]);
|
|
145
147
|
(0, _react.useEffect)(() => {
|
|
146
|
-
const
|
|
148
|
+
const unsubscribeAuth = _service.AuthService.onAuthStateChanged(currentUser => {
|
|
147
149
|
const nextScopes = _service.AuthService.grantedScopes;
|
|
148
150
|
setState(prev => {
|
|
149
151
|
if (prev.user === currentUser && areScopesEqual(prev.scopes, nextScopes) && prev.loading === false) {
|
|
@@ -157,8 +159,14 @@ function useAuth() {
|
|
|
157
159
|
};
|
|
158
160
|
});
|
|
159
161
|
});
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
const unsubscribeTokens = _service.AuthService.onTokensRefreshed?.(() => {
|
|
163
|
+
syncStateFromService(false, undefined);
|
|
164
|
+
});
|
|
165
|
+
return () => {
|
|
166
|
+
unsubscribeAuth();
|
|
167
|
+
unsubscribeTokens?.();
|
|
168
|
+
};
|
|
169
|
+
}, [syncStateFromService]);
|
|
162
170
|
return (0, _react.useMemo)(() => ({
|
|
163
171
|
...state,
|
|
164
172
|
hasPlayServices: _service.AuthService.hasPlayServices,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_service","_authError","areScopesEqual","left","right","length","i","useAuth","state","setState","useState","user","AuthService","currentUser","scopes","grantedScopes","loading","error","undefined","syncStateFromService","useCallback","nextLoading","nextError","nextUser","nextScopes","prev","login","provider","options","e","AuthError","from","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","silentRestore","useEffect","
|
|
1
|
+
{"version":3,"names":["_react","require","_service","_authError","areScopesEqual","left","right","length","sortedLeft","sort","sortedRight","i","useAuth","state","setState","useState","user","AuthService","currentUser","scopes","grantedScopes","loading","error","undefined","syncStateFromService","useCallback","nextLoading","nextError","nextUser","nextScopes","prev","login","provider","options","e","AuthError","from","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","silentRestore","useEffect","unsubscribeAuth","onAuthStateChanged","unsubscribeTokens","onTokensRefreshed","useMemo","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["enabled","logger","exports","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;;;;;AAAA,IAAIA,OAAO,GAAG,KAAK;AAEZ,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,UAAUA,CAACC,KAAc,EAAQ;IAC/BJ,OAAO,GAAGI,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,KAAK;IAC3B,IAAIN,OAAO,EAAEO,OAAO,CAACF,GAAG,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,IAAI,EAAEA,CAAC,GAAGF,IAAe,KAAK;IAC5B,IAAIN,OAAO,EAAEO,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACnD,CAAC;EACDG,KAAK,EAAEA,CAAC,GAAGH,IAAe,KAAK;IAC7B,IAAIN,OAAO,EAAEO,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACpD,CAAC;EACDI,KAAK,EAAEA,CAAC,GAAGJ,IAAe,KAAK;IAC7B,IAAIN,OAAO,EAAEO,OAAO,CAACG,KAAK,CAAC,aAAa,EAAE,GAAGJ,IAAI,CAAC;EACpD;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["enabled","logger","exports","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;;;;;AAAA;AACA,IAAIA,OAAO,GAAG,KAAK;AAEZ,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,UAAUA,CAACC,KAAc,EAAQ;IAC/BJ,OAAO,GAAGI,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,KAAK;IAC3B,IAAIN,OAAO,EAAEO,OAAO,CAACF,GAAG,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,IAAI,EAAEA,CAAC,GAAGF,IAAe,KAAK;IAC5B,IAAIN,OAAO,EAAEO,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACnD,CAAC;EACDG,KAAK,EAAEA,CAAC,GAAGH,IAAe,KAAK;IAC7B,IAAIN,OAAO,EAAEO,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACpD,CAAC;EACDI,KAAK,EAAEA,CAAC,GAAGJ,IAAe,KAAK;IAC7B,IAAIN,OAAO,EAAEO,OAAO,CAACG,KAAK,CAAC,aAAa,EAAE,GAAGJ,IAAI,CAAC;EACpD;AACF,CAAC","ignoreList":[]}
|
package/lib/module/Auth.web.js
CHANGED
|
@@ -13,6 +13,7 @@ const POPUP_POLL_INTERVAL_MS = 100;
|
|
|
13
13
|
const POPUP_TIMEOUT_MS = 120000;
|
|
14
14
|
const WEB_STORAGE_MODES = new Set([STORAGE_MODE_SESSION, STORAGE_MODE_LOCAL, STORAGE_MODE_MEMORY]);
|
|
15
15
|
const inMemoryWebStorage = new Map();
|
|
16
|
+
let _appleSdkLoadPromise;
|
|
16
17
|
class AuthWebError extends Error {
|
|
17
18
|
constructor(message, underlyingError) {
|
|
18
19
|
super(message);
|
|
@@ -74,6 +75,7 @@ const parseAuthWebExtraConfig = value => {
|
|
|
74
75
|
};
|
|
75
76
|
const getConfig = () => {
|
|
76
77
|
try {
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
77
79
|
const Constants = require("expo-constants").default;
|
|
78
80
|
return parseAuthWebExtraConfig(Constants.expoConfig?.extra);
|
|
79
81
|
} catch (error) {
|
|
@@ -88,6 +90,7 @@ class AuthWeb {
|
|
|
88
90
|
_listeners = [];
|
|
89
91
|
_tokenListeners = [];
|
|
90
92
|
_browserStorageResolved = false;
|
|
93
|
+
_loginInFlight = false;
|
|
91
94
|
constructor() {
|
|
92
95
|
this._config = getConfig();
|
|
93
96
|
this.loadFromCache();
|
|
@@ -194,6 +197,7 @@ class AuthWeb {
|
|
|
194
197
|
const storage = this.getBrowserStorage();
|
|
195
198
|
if (storage) {
|
|
196
199
|
storage.removeItem(key);
|
|
200
|
+
return;
|
|
197
201
|
}
|
|
198
202
|
inMemoryWebStorage.delete(key);
|
|
199
203
|
}
|
|
@@ -398,7 +402,7 @@ class AuthWeb {
|
|
|
398
402
|
logger.log("Refreshing Microsoft tokens...");
|
|
399
403
|
const refreshToken = this.loadRefreshToken();
|
|
400
404
|
if (!refreshToken) {
|
|
401
|
-
throw new
|
|
405
|
+
throw new AuthWebError("refresh_failed", "No refresh token available");
|
|
402
406
|
}
|
|
403
407
|
const clientId = this._config.microsoftClientId;
|
|
404
408
|
if (!clientId) {
|
|
@@ -476,13 +480,17 @@ class AuthWeb {
|
|
|
476
480
|
let mappedMsg = rawMessage;
|
|
477
481
|
if (msg.includes("cancel") || msg.includes("popup_closed")) {
|
|
478
482
|
mappedMsg = "cancelled";
|
|
483
|
+
} else if (msg.includes("access_denied")) {
|
|
484
|
+
mappedMsg = "cancelled";
|
|
479
485
|
} else if (msg.includes("timeout")) {
|
|
480
486
|
mappedMsg = "timeout";
|
|
481
487
|
} else if (msg.includes("popup blocked")) {
|
|
482
488
|
mappedMsg = "popup_blocked";
|
|
483
|
-
} else if (msg.includes("network")) {
|
|
489
|
+
} else if (msg.includes("network") || msg.includes("server_error") || msg.includes("temporarily_unavailable")) {
|
|
484
490
|
mappedMsg = "network_error";
|
|
485
|
-
} else if (msg.includes("
|
|
491
|
+
} else if (msg.includes("invalid_grant") || msg.includes("invalid_token")) {
|
|
492
|
+
mappedMsg = "refresh_failed";
|
|
493
|
+
} else if (msg.includes("invalid_scope") || msg.includes("unauthorized_client") || msg.includes("invalid_client") || msg.includes("client id") || msg.includes("config")) {
|
|
486
494
|
mappedMsg = "configuration_error";
|
|
487
495
|
}
|
|
488
496
|
return new AuthWebError(mappedMsg, rawMessage);
|
|
@@ -552,10 +560,23 @@ class AuthWeb {
|
|
|
552
560
|
});
|
|
553
561
|
}
|
|
554
562
|
async loginGoogle(scopes, loginHint) {
|
|
563
|
+
if (this._loginInFlight) {
|
|
564
|
+
throw new AuthWebError("cancelled", "Another login is already in progress");
|
|
565
|
+
}
|
|
566
|
+
this._loginInFlight = true;
|
|
567
|
+
try {
|
|
568
|
+
await this._loginGoogleInner(scopes, loginHint);
|
|
569
|
+
} finally {
|
|
570
|
+
this._loginInFlight = false;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
async _loginGoogleInner(scopes, loginHint) {
|
|
555
574
|
const clientId = this._config.googleWebClientId;
|
|
556
575
|
if (!clientId) {
|
|
557
576
|
throw new Error("Google Web Client ID not configured. Add 'GOOGLE_WEB_CLIENT_ID' to your .env file.");
|
|
558
577
|
}
|
|
578
|
+
const nonce = crypto.randomUUID();
|
|
579
|
+
this._pendingGoogleNonce = nonce;
|
|
559
580
|
return new Promise((resolve, reject) => {
|
|
560
581
|
const redirectUri = window.location.origin;
|
|
561
582
|
const authUrl = new URL("https://accounts.google.com/o/oauth2/v2/auth");
|
|
@@ -563,7 +584,7 @@ class AuthWeb {
|
|
|
563
584
|
authUrl.searchParams.set("redirect_uri", redirectUri);
|
|
564
585
|
authUrl.searchParams.set("response_type", "id_token token code");
|
|
565
586
|
authUrl.searchParams.set("scope", scopes.join(" "));
|
|
566
|
-
authUrl.searchParams.set("nonce",
|
|
587
|
+
authUrl.searchParams.set("nonce", nonce);
|
|
567
588
|
authUrl.searchParams.set("access_type", "offline");
|
|
568
589
|
authUrl.searchParams.set("prompt", "consent");
|
|
569
590
|
if (loginHint) {
|
|
@@ -588,6 +609,12 @@ class AuthWeb {
|
|
|
588
609
|
if (!idToken) {
|
|
589
610
|
throw new Error("No id_token in response");
|
|
590
611
|
}
|
|
612
|
+
const decoded = this.parseJwtPayload(idToken);
|
|
613
|
+
if (decoded["nonce"] !== this._pendingGoogleNonce) {
|
|
614
|
+
this._pendingGoogleNonce = undefined;
|
|
615
|
+
throw new Error("Nonce mismatch - possible replay attack");
|
|
616
|
+
}
|
|
617
|
+
this._pendingGoogleNonce = undefined;
|
|
591
618
|
this._grantedScopes = scopes;
|
|
592
619
|
this.saveValue(SCOPES_KEY, JSON.stringify(scopes));
|
|
593
620
|
const user = {
|
|
@@ -623,6 +650,17 @@ class AuthWeb {
|
|
|
623
650
|
}
|
|
624
651
|
}
|
|
625
652
|
async loginMicrosoft(scopes, loginHint, tenant, prompt) {
|
|
653
|
+
if (this._loginInFlight) {
|
|
654
|
+
throw new AuthWebError("cancelled", "Another login is already in progress");
|
|
655
|
+
}
|
|
656
|
+
this._loginInFlight = true;
|
|
657
|
+
try {
|
|
658
|
+
await this._loginMicrosoftInner(scopes, loginHint, tenant, prompt);
|
|
659
|
+
} finally {
|
|
660
|
+
this._loginInFlight = false;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
async _loginMicrosoftInner(scopes, loginHint, tenant, prompt) {
|
|
626
664
|
const clientId = this._config.microsoftClientId;
|
|
627
665
|
if (!clientId) {
|
|
628
666
|
throw new Error("Microsoft Client ID not configured. Add 'microsoftClientId' to expo.extra in your app.config.js");
|
|
@@ -775,10 +813,10 @@ class AuthWeb {
|
|
|
775
813
|
if (window.AppleID) {
|
|
776
814
|
return;
|
|
777
815
|
}
|
|
778
|
-
if (
|
|
779
|
-
return
|
|
816
|
+
if (_appleSdkLoadPromise) {
|
|
817
|
+
return _appleSdkLoadPromise;
|
|
780
818
|
}
|
|
781
|
-
|
|
819
|
+
_appleSdkLoadPromise = new Promise((resolve, reject) => {
|
|
782
820
|
const scriptId = "nitro-auth-apple-sdk";
|
|
783
821
|
const existingScript = document.getElementById(scriptId);
|
|
784
822
|
if (existingScript) {
|
|
@@ -792,7 +830,7 @@ class AuthWeb {
|
|
|
792
830
|
once: true
|
|
793
831
|
});
|
|
794
832
|
existingScript.addEventListener("error", () => {
|
|
795
|
-
|
|
833
|
+
_appleSdkLoadPromise = undefined;
|
|
796
834
|
reject(new Error("Failed to load Apple SDK"));
|
|
797
835
|
}, {
|
|
798
836
|
once: true
|
|
@@ -807,12 +845,12 @@ class AuthWeb {
|
|
|
807
845
|
resolve();
|
|
808
846
|
};
|
|
809
847
|
script.onerror = () => {
|
|
810
|
-
|
|
848
|
+
_appleSdkLoadPromise = undefined;
|
|
811
849
|
reject(new Error("Failed to load Apple SDK"));
|
|
812
850
|
};
|
|
813
851
|
document.head.appendChild(script);
|
|
814
852
|
});
|
|
815
|
-
return
|
|
853
|
+
return _appleSdkLoadPromise;
|
|
816
854
|
}
|
|
817
855
|
async loginApple() {
|
|
818
856
|
const clientId = this._config.appleWebClientId;
|
|
@@ -872,6 +910,8 @@ class AuthWeb {
|
|
|
872
910
|
setLoggingEnabled(enabled) {
|
|
873
911
|
logger.setEnabled(enabled);
|
|
874
912
|
}
|
|
913
|
+
|
|
914
|
+
/** @internal Reserved for future use — not part of the public API */
|
|
875
915
|
setWebStorageAdapter(adapter) {
|
|
876
916
|
this._storageAdapter = adapter ? this.createWebStorageDriver(adapter) : undefined;
|
|
877
917
|
this.loadFromCache();
|