@oxyhq/services 5.18.5 → 5.19.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.
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js +1 -1
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +24 -17
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/WebOxyProvider.js +11 -2
- package/lib/commonjs/ui/components/WebOxyProvider.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +33 -8
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +55 -16
- package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.fedcm.js +1 -1
- package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +24 -17
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/WebOxyProvider.js +11 -2
- package/lib/module/ui/components/WebOxyProvider.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +33 -8
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useWebSSO.js +55 -16
- package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts +11 -2
- package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +8 -3
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +29 -7
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/WebOxyProvider.d.ts +11 -2
- package/lib/typescript/module/ui/components/WebOxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts +8 -3
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +29 -7
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/mixins/OxyServices.fedcm.ts +1 -1
- package/src/ui/components/OxySignInButton.tsx +24 -17
- package/src/ui/components/WebOxyProvider.tsx +11 -2
- package/src/ui/hooks/useAuth.ts +42 -12
- package/src/ui/hooks/useWebSSO.ts +59 -15
|
@@ -214,7 +214,7 @@ function OxyServicesFedCMMixin(Base) {
|
|
|
214
214
|
* @private
|
|
215
215
|
*/
|
|
216
216
|
async exchangeIdTokenForSession(idToken) {
|
|
217
|
-
return this.makeRequest('POST', '/api/
|
|
217
|
+
return this.makeRequest('POST', '/api/fedcm/exchange', {
|
|
218
218
|
id_token: idToken
|
|
219
219
|
}, {
|
|
220
220
|
cache: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OxyServicesErrors","require","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","OxyAuthenticationError","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_OxyServicesErrors","require","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","OxyAuthenticationError","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,8 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.OxySignInButton = void 0;
|
|
7
|
+
var _react = require("react");
|
|
7
8
|
var _reactNative = require("react-native");
|
|
8
|
-
var
|
|
9
|
+
var _useAuth = require("../hooks/useAuth.js");
|
|
9
10
|
var _OxyLogo = _interopRequireDefault(require("./OxyLogo.js"));
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -43,31 +44,37 @@ const OxySignInButton = ({
|
|
|
43
44
|
disabled = false,
|
|
44
45
|
showWhenAuthenticated = false
|
|
45
46
|
}) => {
|
|
46
|
-
// Get all needed values from context in a single call
|
|
47
47
|
const {
|
|
48
48
|
isAuthenticated,
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
signIn,
|
|
50
|
+
isLoading
|
|
51
|
+
} = (0, _useAuth.useAuth)();
|
|
52
|
+
const [isSigningIn, setIsSigningIn] = (0, _react.useState)(false);
|
|
51
53
|
|
|
52
54
|
// Don't show the button if already authenticated (unless explicitly overridden)
|
|
53
55
|
if (isAuthenticated && !showWhenAuthenticated) return null;
|
|
54
56
|
|
|
55
|
-
// Default handler that uses
|
|
56
|
-
|
|
57
|
+
// Default handler that uses useAuth's signIn method
|
|
58
|
+
// This works for both web (popup) and native (bottom sheet)
|
|
59
|
+
const handlePress = async () => {
|
|
57
60
|
if (onPress) {
|
|
58
61
|
onPress();
|
|
59
62
|
return;
|
|
60
63
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
64
|
+
if (isSigningIn) return;
|
|
65
|
+
setIsSigningIn(true);
|
|
66
|
+
try {
|
|
67
|
+
await signIn();
|
|
68
|
+
} catch (error) {
|
|
69
|
+
// Sign-in handled by the auth flow
|
|
66
70
|
if (__DEV__) {
|
|
67
|
-
console.
|
|
71
|
+
console.log('OxySignInButton: Sign-in flow initiated', error);
|
|
68
72
|
}
|
|
73
|
+
} finally {
|
|
74
|
+
setIsSigningIn(false);
|
|
69
75
|
}
|
|
70
76
|
};
|
|
77
|
+
const isButtonDisabled = disabled || isLoading || isSigningIn;
|
|
71
78
|
|
|
72
79
|
// Determine the button style based on the variant
|
|
73
80
|
const getButtonStyle = () => {
|
|
@@ -93,9 +100,9 @@ const OxySignInButton = ({
|
|
|
93
100
|
}
|
|
94
101
|
};
|
|
95
102
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
96
|
-
style: [styles.button, getButtonStyle(),
|
|
103
|
+
style: [styles.button, getButtonStyle(), isButtonDisabled && styles.buttonDisabled],
|
|
97
104
|
onPress: handlePress,
|
|
98
|
-
disabled:
|
|
105
|
+
disabled: isButtonDisabled,
|
|
99
106
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
100
107
|
style: styles.buttonContent,
|
|
101
108
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_OxyLogo.default, {
|
|
@@ -103,12 +110,12 @@ const OxySignInButton = ({
|
|
|
103
110
|
height: 20,
|
|
104
111
|
fillColor: variant === 'contained' ? 'white' : '#d169e5',
|
|
105
112
|
secondaryFillColor: variant === 'contained' ? '#d169e5' : undefined,
|
|
106
|
-
style:
|
|
113
|
+
style: isButtonDisabled ? {
|
|
107
114
|
opacity: 0.6
|
|
108
115
|
} : undefined
|
|
109
116
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
110
|
-
style: [styles.text, getTextStyle(),
|
|
111
|
-
children: text
|
|
117
|
+
style: [styles.text, getTextStyle(), isButtonDisabled && styles.textDisabled],
|
|
118
|
+
children: isSigningIn ? 'Signing in...' : text
|
|
112
119
|
})]
|
|
113
120
|
})
|
|
114
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_useAuth","_OxyLogo","_interopRequireDefault","_jsxRuntime","e","__esModule","default","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","isAuthenticated","signIn","isLoading","useAuth","isSigningIn","setIsSigningIn","useState","handlePress","error","__DEV__","console","log","isButtonDisabled","getButtonStyle","styles","buttonOutline","buttonContained","buttonDefault","getTextStyle","textOutline","textContained","textDefault","jsx","TouchableOpacity","button","buttonDisabled","children","jsxs","View","buttonContent","width","height","fillColor","secondaryFillColor","undefined","opacity","Text","textDisabled","exports","StyleSheet","create","padding","borderRadius","alignItems","justifyContent","backgroundColor","borderWidth","borderColor","Platform","select","web","boxShadow","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flexDirection","fontFamily","OS","fontWeight","fontSize","marginLeft","color","_default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,10 +15,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
15
15
|
*
|
|
16
16
|
* This provider is specifically for web environments and doesn't include
|
|
17
17
|
* React Native-specific dependencies. It provides:
|
|
18
|
-
* - Automatic cross-domain SSO via
|
|
18
|
+
* - Automatic cross-domain SSO via FedCM (Chrome 108+, Safari 16.4+, Edge 108+)
|
|
19
19
|
* - Session management
|
|
20
20
|
* - All useOxy/useAuth functionality
|
|
21
21
|
*
|
|
22
|
+
* Zero-config: Just wrap your app and SSO works automatically across domains.
|
|
23
|
+
*
|
|
22
24
|
* Usage:
|
|
23
25
|
* ```tsx
|
|
24
26
|
* import { WebOxyProvider, useAuth } from '@oxyhq/services';
|
|
@@ -30,6 +32,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
30
32
|
* </WebOxyProvider>
|
|
31
33
|
* );
|
|
32
34
|
* }
|
|
35
|
+
*
|
|
36
|
+
* function LoginButton() {
|
|
37
|
+
* const { isAuthenticated, signIn, user } = useAuth();
|
|
38
|
+
* if (isAuthenticated) return <span>Welcome, {user?.username}!</span>;
|
|
39
|
+
* return <button onClick={() => signIn()}>Sign In</button>;
|
|
40
|
+
* }
|
|
33
41
|
* ```
|
|
34
42
|
*/
|
|
35
43
|
|
|
@@ -37,7 +45,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
37
45
|
* OxyProvider for web applications
|
|
38
46
|
*
|
|
39
47
|
* Features:
|
|
40
|
-
* - Automatic cross-domain SSO (
|
|
48
|
+
* - Automatic cross-domain SSO via FedCM (browser-native identity API)
|
|
49
|
+
* - Works across different TLDs (alia.onl, mention.earth, homiio.com, etc.)
|
|
41
50
|
* - Session persistence in localStorage
|
|
42
51
|
* - TanStack Query for data fetching
|
|
43
52
|
* - No React Native dependencies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OxyContext","_reactQuery","_queryClient","_storageHelpers","_jsxRuntime","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","storageKeyPrefix","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","jsx","QueryClientProvider","OxyContextProvider","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/WebOxyProvider.tsx"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_react","require","_OxyContext","_reactQuery","_queryClient","_storageHelpers","_jsxRuntime","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","storageKeyPrefix","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","jsx","QueryClientProvider","OxyContextProvider","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/WebOxyProvider.tsx"],"mappings":";;;;;;AA+BA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAAuF,IAAAK,WAAA,GAAAL,OAAA;AAnCvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,cAAuC,GAAGA,CAAC;EAC/CC,QAAQ;EACRC,OAAO;EACPC,UAAU;EACVC,iBAAiB;EACjBC,gBAAgB;EAChBC,WAAW,EAAEC;AACf,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACxD,MAAMC,cAAc,GAAG,IAAAD,aAAM,EAA8C,IAAI,CAAC;EAChF,MAAM,CAACH,WAAW,EAAEK,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAA8C,IAAI,CAAC;EAEjG,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIN,mBAAmB,EAAE;MACvBG,cAAc,CAACI,OAAO,GAAGP,mBAAmB;MAC5CI,cAAc,CAACJ,mBAAmB,CAAC;MACnC;IACF;IAEA,IAAIQ,OAAO,GAAG,IAAI;IAClB,IAAAC,qCAAqB,EAAC,CAAC,CACpBC,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIH,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtCN,UAAU,CAACM,OAAO,GAAGI,OAAO;QAC5B,MAAMC,MAAM,GAAG,IAAAC,8BAAiB,EAACF,OAAO,CAAC;QACzCR,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC,CACDE,KAAK,CAAC,MAAM;MACX,IAAIN,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtC,MAAMK,MAAM,GAAG,IAAAC,8BAAiB,EAAC,IAAI,CAAC;QACtCV,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXJ,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,CAACR,mBAAmB,CAAC,CAAC;;EAEzB;EACA,IAAI,CAACD,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,oBACE,IAAAP,WAAA,CAAAuB,GAAA,EAAC1B,WAAA,CAAA2B,mBAAmB;IAACJ,MAAM,EAAEb,WAAY;IAAAL,QAAA,eACvC,IAAAF,WAAA,CAAAuB,GAAA,EAAC3B,WAAA,CAAA6B,kBAAkB;MACjBtB,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBE,gBAAgB,EAAEA,gBAAiB;MACnCD,iBAAiB,EAAEA,iBAAkB;MAAAH,QAAA,EAEpCA;IAAQ,CACS;EAAC,CACF,CAAC;AAE1B,CAAC;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa3B,cAAc","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "useOxy", {
|
|
|
12
12
|
});
|
|
13
13
|
var _react = require("react");
|
|
14
14
|
var _OxyContext = require("../context/OxyContext.js");
|
|
15
|
+
var _useWebSSO = require("./useWebSSO.js");
|
|
15
16
|
/**
|
|
16
17
|
* Unified Auth Hook
|
|
17
18
|
*
|
|
@@ -30,6 +31,11 @@ var _OxyContext = require("../context/OxyContext.js");
|
|
|
30
31
|
* return <Welcome user={user} />;
|
|
31
32
|
* }
|
|
32
33
|
* ```
|
|
34
|
+
*
|
|
35
|
+
* Cross-domain SSO:
|
|
36
|
+
* - Web: Automatic via FedCM (Chrome 108+, Safari 16.4+)
|
|
37
|
+
* - Native: Automatic via shared Keychain/Account Manager
|
|
38
|
+
* - Manual sign-in: signIn() opens popup (web) or auth sheet (native)
|
|
33
39
|
*/
|
|
34
40
|
|
|
35
41
|
/**
|
|
@@ -58,6 +64,30 @@ function useAuth() {
|
|
|
58
64
|
showBottomSheet
|
|
59
65
|
} = (0, _OxyContext.useOxy)();
|
|
60
66
|
const signIn = (0, _react.useCallback)(async publicKey => {
|
|
67
|
+
// Web: Use popup-based authentication
|
|
68
|
+
if ((0, _useWebSSO.isWebBrowser)() && !publicKey) {
|
|
69
|
+
try {
|
|
70
|
+
// Try FedCM first (instant if user already signed in)
|
|
71
|
+
if (oxyServices.isFedCMSupported?.()) {
|
|
72
|
+
const fedcmSession = await oxyServices.signInWithFedCM?.();
|
|
73
|
+
if (fedcmSession?.user) {
|
|
74
|
+
return fedcmSession.user;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Fallback to popup (opens auth.oxy.so in popup window)
|
|
79
|
+
const popupSession = await oxyServices.signInWithPopup?.();
|
|
80
|
+
if (popupSession?.user) {
|
|
81
|
+
return popupSession.user;
|
|
82
|
+
}
|
|
83
|
+
throw new Error('Sign-in failed');
|
|
84
|
+
} catch (error) {
|
|
85
|
+
// If popup blocked or FedCM failed, suggest redirect
|
|
86
|
+
throw new Error(error instanceof Error && error.message.includes('blocked') ? 'Popup blocked. Please allow popups or try again.' : 'Sign-in failed. Please try again.');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Native: Use cryptographic identity
|
|
61
91
|
// If public key provided, use it directly
|
|
62
92
|
if (publicKey) {
|
|
63
93
|
return oxySignIn(publicKey);
|
|
@@ -72,19 +102,14 @@ function useAuth() {
|
|
|
72
102
|
}
|
|
73
103
|
}
|
|
74
104
|
|
|
75
|
-
// No identity - show auth UI
|
|
76
|
-
// On native: shows bottom sheet for identity creation
|
|
77
|
-
// On web: could trigger popup auth
|
|
105
|
+
// No identity - show auth UI (native bottom sheet)
|
|
78
106
|
showBottomSheet?.('OxyAuth');
|
|
79
107
|
|
|
80
108
|
// Return a promise that resolves when auth completes
|
|
81
|
-
|
|
82
|
-
// wait for the auth flow to complete
|
|
83
|
-
return new Promise((resolve, reject) => {
|
|
84
|
-
// For now, just reject - the bottom sheet handles the flow
|
|
109
|
+
return new Promise((_, reject) => {
|
|
85
110
|
reject(new Error('Please complete sign-in in the auth sheet'));
|
|
86
111
|
});
|
|
87
|
-
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet]);
|
|
112
|
+
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet, oxyServices]);
|
|
88
113
|
const signOut = (0, _react.useCallback)(async () => {
|
|
89
114
|
await logout();
|
|
90
115
|
}, [logout]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OxyContext","useAuth","user","isAuthenticated","isLoading","isTokenReady","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","useOxy","useCallback","publicKey","hasExisting","existingKey","Promise","
|
|
1
|
+
{"version":3,"names":["_react","require","_OxyContext","_useWebSSO","useAuth","user","isAuthenticated","isLoading","isTokenReady","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","useOxy","useCallback","publicKey","isWebBrowser","isFedCMSupported","fedcmSession","signInWithFedCM","popupSession","signInWithPopup","Error","message","includes","hasExisting","existingKey","Promise","_","reject","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,67 +9,106 @@ var _react = require("react");
|
|
|
9
9
|
/**
|
|
10
10
|
* Web SSO Hook
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Handles cross-domain SSO for web apps using FedCM (Federated Credential Management).
|
|
13
|
+
*
|
|
14
|
+
* FedCM is the modern, privacy-preserving standard for cross-domain identity federation.
|
|
15
|
+
* It works across completely different TLDs (alia.onl, mention.earth, homiio.com, etc.)
|
|
16
|
+
* without relying on third-party cookies.
|
|
17
|
+
*
|
|
18
|
+
* For browsers without FedCM support, users will need to click a sign-in button
|
|
19
|
+
* which triggers a popup-based authentication flow.
|
|
15
20
|
*
|
|
16
21
|
* This is called automatically by OxyContext on web platforms.
|
|
22
|
+
*
|
|
23
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
|
|
17
24
|
*/
|
|
18
25
|
|
|
19
26
|
/**
|
|
20
27
|
* Check if we're running in a web browser environment (not React Native)
|
|
21
28
|
*/
|
|
22
29
|
function isWebBrowser() {
|
|
23
|
-
// Check for browser globals and that we have a real DOM (React Native has window but not documentElement)
|
|
24
30
|
return typeof window !== 'undefined' && typeof document !== 'undefined' && typeof document.documentElement !== 'undefined';
|
|
25
31
|
}
|
|
26
32
|
|
|
27
33
|
/**
|
|
28
|
-
* Hook for automatic web SSO
|
|
34
|
+
* Hook for automatic cross-domain web SSO
|
|
29
35
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
36
|
+
* Uses FedCM (Federated Credential Management) - the modern browser-native
|
|
37
|
+
* identity federation API. This is the same technology that powers
|
|
38
|
+
* Google's cross-domain SSO (YouTube, Gmail, Maps, etc.).
|
|
39
|
+
*
|
|
40
|
+
* Key benefits:
|
|
41
|
+
* - Works across different TLDs (alia.onl ↔ mention.earth ↔ homiio.com)
|
|
42
|
+
* - No third-party cookies required
|
|
43
|
+
* - Privacy-preserving (browser mediates identity, IdP can't track)
|
|
44
|
+
* - Automatic silent sign-in after initial authentication
|
|
45
|
+
*
|
|
46
|
+
* For browsers without FedCM (Firefox, older browsers), automatic SSO
|
|
47
|
+
* is not possible. Users will see a sign-in button instead.
|
|
32
48
|
*/
|
|
33
49
|
function useWebSSO({
|
|
34
50
|
oxyServices,
|
|
35
51
|
onSessionFound,
|
|
52
|
+
onSSOUnavailable,
|
|
36
53
|
onError,
|
|
37
54
|
enabled = true
|
|
38
55
|
}) {
|
|
39
56
|
const isCheckingRef = (0, _react.useRef)(false);
|
|
40
57
|
const hasCheckedRef = (0, _react.useRef)(false);
|
|
58
|
+
|
|
59
|
+
// Check FedCM support once
|
|
60
|
+
const fedCMSupported = isWebBrowser() && oxyServices.isFedCMSupported?.();
|
|
41
61
|
const checkSSO = (0, _react.useCallback)(async () => {
|
|
42
62
|
if (!isWebBrowser() || isCheckingRef.current) {
|
|
43
63
|
return null;
|
|
44
64
|
}
|
|
65
|
+
|
|
66
|
+
// FedCM is the only reliable cross-domain SSO mechanism
|
|
67
|
+
// Third-party cookies are deprecated and unreliable
|
|
68
|
+
if (!fedCMSupported) {
|
|
69
|
+
onSSOUnavailable?.();
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
45
72
|
isCheckingRef.current = true;
|
|
46
73
|
try {
|
|
47
|
-
// Use
|
|
48
|
-
//
|
|
49
|
-
const session = await oxyServices.
|
|
74
|
+
// Use FedCM for cross-domain SSO
|
|
75
|
+
// This works because browser treats IdP requests as first-party
|
|
76
|
+
const session = await oxyServices.silentSignInWithFedCM?.();
|
|
50
77
|
if (session) {
|
|
51
78
|
await onSessionFound(session);
|
|
79
|
+
return session;
|
|
52
80
|
}
|
|
53
|
-
|
|
81
|
+
|
|
82
|
+
// No session found - user needs to sign in
|
|
83
|
+
onSSOUnavailable?.();
|
|
84
|
+
return null;
|
|
54
85
|
} catch (error) {
|
|
86
|
+
// FedCM failed - could be network error, user not signed in, etc.
|
|
87
|
+
onSSOUnavailable?.();
|
|
55
88
|
onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
56
89
|
return null;
|
|
57
90
|
} finally {
|
|
58
91
|
isCheckingRef.current = false;
|
|
59
92
|
}
|
|
60
|
-
}, [oxyServices, onSessionFound, onError]);
|
|
93
|
+
}, [oxyServices, onSessionFound, onSSOUnavailable, onError, fedCMSupported]);
|
|
61
94
|
|
|
62
|
-
// Auto-check SSO on mount (web only)
|
|
95
|
+
// Auto-check SSO on mount (web only, FedCM only)
|
|
63
96
|
(0, _react.useEffect)(() => {
|
|
64
97
|
if (!enabled || !isWebBrowser() || hasCheckedRef.current) {
|
|
65
98
|
return;
|
|
66
99
|
}
|
|
67
100
|
hasCheckedRef.current = true;
|
|
68
|
-
|
|
69
|
-
|
|
101
|
+
if (fedCMSupported) {
|
|
102
|
+
checkSSO();
|
|
103
|
+
} else {
|
|
104
|
+
// Browser doesn't support FedCM - notify caller
|
|
105
|
+
onSSOUnavailable?.();
|
|
106
|
+
}
|
|
107
|
+
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
|
|
70
108
|
return {
|
|
71
109
|
checkSSO,
|
|
72
|
-
isChecking: isCheckingRef.current
|
|
110
|
+
isChecking: isCheckingRef.current,
|
|
111
|
+
isFedCMSupported: fedCMSupported
|
|
73
112
|
};
|
|
74
113
|
}
|
|
75
114
|
//# sourceMappingURL=useWebSSO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","isWebBrowser","window","document","documentElement","useWebSSO","oxyServices","onSessionFound","onError","enabled","isCheckingRef","useRef","hasCheckedRef","checkSSO","useCallback","current","session","
|
|
1
|
+
{"version":3,"names":["_react","require","isWebBrowser","window","document","documentElement","useWebSSO","oxyServices","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","useRef","hasCheckedRef","fedCMSupported","isFedCMSupported","checkSSO","useCallback","current","session","silentSignInWithFedCM","error","Error","String","useEffect","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":";;;;;;;AAiBA,IAAAA,MAAA,GAAAC,OAAA;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA,SAASC,YAAYA,CAAA,EAAY;EAC/B,OAAO,OAAOC,MAAM,KAAK,WAAW,IAC7B,OAAOC,QAAQ,KAAK,WAAW,IAC/B,OAAOA,QAAQ,CAACC,eAAe,KAAK,WAAW;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAAC;EACxBC,WAAW;EACXC,cAAc;EACdC,gBAAgB;EAChBC,OAAO;EACPC,OAAO,GAAG;AACM,CAAC,EAAmB;EACpC,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EACnC,MAAMC,aAAa,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;;EAEnC;EACA,MAAME,cAAc,GAAGb,YAAY,CAAC,CAAC,IAAKK,WAAW,CAASS,gBAAgB,GAAG,CAAC;EAElF,MAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAAC,YAAkD;IAC7E,IAAI,CAAChB,YAAY,CAAC,CAAC,IAAIU,aAAa,CAACO,OAAO,EAAE;MAC5C,OAAO,IAAI;IACb;;IAEA;IACA;IACA,IAAI,CAACJ,cAAc,EAAE;MACnBN,gBAAgB,GAAG,CAAC;MACpB,OAAO,IAAI;IACb;IAEAG,aAAa,CAACO,OAAO,GAAG,IAAI;IAE5B,IAAI;MACF;MACA;MACA,MAAMC,OAAO,GAAG,MAAOb,WAAW,CAASc,qBAAqB,GAAG,CAAC;MAEpE,IAAID,OAAO,EAAE;QACX,MAAMZ,cAAc,CAACY,OAAO,CAAC;QAC7B,OAAOA,OAAO;MAChB;;MAEA;MACAX,gBAAgB,GAAG,CAAC;MACpB,OAAO,IAAI;IACb,CAAC,CAAC,OAAOa,KAAK,EAAE;MACd;MACAb,gBAAgB,GAAG,CAAC;MACpBC,OAAO,GAAGY,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC;MACpE,OAAO,IAAI;IACb,CAAC,SAAS;MACRV,aAAa,CAACO,OAAO,GAAG,KAAK;IAC/B;EACF,CAAC,EAAE,CAACZ,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,EAAEC,OAAO,EAAEK,cAAc,CAAC,CAAC;;EAE5E;EACA,IAAAU,gBAAS,EAAC,MAAM;IACd,IAAI,CAACd,OAAO,IAAI,CAACT,YAAY,CAAC,CAAC,IAAIY,aAAa,CAACK,OAAO,EAAE;MACxD;IACF;IAEAL,aAAa,CAACK,OAAO,GAAG,IAAI;IAE5B,IAAIJ,cAAc,EAAE;MAClBE,QAAQ,CAAC,CAAC;IACZ,CAAC,MAAM;MACL;MACAR,gBAAgB,GAAG,CAAC;IACtB;EACF,CAAC,EAAE,CAACE,OAAO,EAAEM,QAAQ,EAAEF,cAAc,EAAEN,gBAAgB,CAAC,CAAC;EAEzD,OAAO;IACLQ,QAAQ;IACRS,UAAU,EAAEd,aAAa,CAACO,OAAO;IACjCH,gBAAgB,EAAED;EACpB,CAAC;AACH","ignoreList":[]}
|
|
@@ -210,7 +210,7 @@ export function OxyServicesFedCMMixin(Base) {
|
|
|
210
210
|
* @private
|
|
211
211
|
*/
|
|
212
212
|
async exchangeIdTokenForSession(idToken) {
|
|
213
|
-
return this.makeRequest('POST', '/api/
|
|
213
|
+
return this.makeRequest('POST', '/api/fedcm/exchange', {
|
|
214
214
|
id_token: idToken
|
|
215
215
|
}, {
|
|
216
216
|
cache: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
import { TouchableOpacity, Text, View, StyleSheet, Platform } from 'react-native';
|
|
4
|
-
import {
|
|
5
|
+
import { useAuth } from "../hooks/useAuth.js";
|
|
5
6
|
import OxyLogo from "./OxyLogo.js";
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
/**
|
|
@@ -38,31 +39,37 @@ export const OxySignInButton = ({
|
|
|
38
39
|
disabled = false,
|
|
39
40
|
showWhenAuthenticated = false
|
|
40
41
|
}) => {
|
|
41
|
-
// Get all needed values from context in a single call
|
|
42
42
|
const {
|
|
43
43
|
isAuthenticated,
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
signIn,
|
|
45
|
+
isLoading
|
|
46
|
+
} = useAuth();
|
|
47
|
+
const [isSigningIn, setIsSigningIn] = useState(false);
|
|
46
48
|
|
|
47
49
|
// Don't show the button if already authenticated (unless explicitly overridden)
|
|
48
50
|
if (isAuthenticated && !showWhenAuthenticated) return null;
|
|
49
51
|
|
|
50
|
-
// Default handler that uses
|
|
51
|
-
|
|
52
|
+
// Default handler that uses useAuth's signIn method
|
|
53
|
+
// This works for both web (popup) and native (bottom sheet)
|
|
54
|
+
const handlePress = async () => {
|
|
52
55
|
if (onPress) {
|
|
53
56
|
onPress();
|
|
54
57
|
return;
|
|
55
58
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
59
|
+
if (isSigningIn) return;
|
|
60
|
+
setIsSigningIn(true);
|
|
61
|
+
try {
|
|
62
|
+
await signIn();
|
|
63
|
+
} catch (error) {
|
|
64
|
+
// Sign-in handled by the auth flow
|
|
61
65
|
if (__DEV__) {
|
|
62
|
-
console.
|
|
66
|
+
console.log('OxySignInButton: Sign-in flow initiated', error);
|
|
63
67
|
}
|
|
68
|
+
} finally {
|
|
69
|
+
setIsSigningIn(false);
|
|
64
70
|
}
|
|
65
71
|
};
|
|
72
|
+
const isButtonDisabled = disabled || isLoading || isSigningIn;
|
|
66
73
|
|
|
67
74
|
// Determine the button style based on the variant
|
|
68
75
|
const getButtonStyle = () => {
|
|
@@ -88,9 +95,9 @@ export const OxySignInButton = ({
|
|
|
88
95
|
}
|
|
89
96
|
};
|
|
90
97
|
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
91
|
-
style: [styles.button, getButtonStyle(),
|
|
98
|
+
style: [styles.button, getButtonStyle(), isButtonDisabled && styles.buttonDisabled],
|
|
92
99
|
onPress: handlePress,
|
|
93
|
-
disabled:
|
|
100
|
+
disabled: isButtonDisabled,
|
|
94
101
|
children: /*#__PURE__*/_jsxs(View, {
|
|
95
102
|
style: styles.buttonContent,
|
|
96
103
|
children: [/*#__PURE__*/_jsx(OxyLogo, {
|
|
@@ -98,12 +105,12 @@ export const OxySignInButton = ({
|
|
|
98
105
|
height: 20,
|
|
99
106
|
fillColor: variant === 'contained' ? 'white' : '#d169e5',
|
|
100
107
|
secondaryFillColor: variant === 'contained' ? '#d169e5' : undefined,
|
|
101
|
-
style:
|
|
108
|
+
style: isButtonDisabled ? {
|
|
102
109
|
opacity: 0.6
|
|
103
110
|
} : undefined
|
|
104
111
|
}), /*#__PURE__*/_jsx(Text, {
|
|
105
|
-
style: [styles.text, getTextStyle(),
|
|
106
|
-
children: text
|
|
112
|
+
style: [styles.text, getTextStyle(), isButtonDisabled && styles.textDisabled],
|
|
113
|
+
children: isSigningIn ? 'Signing in...' : text
|
|
107
114
|
})]
|
|
108
115
|
})
|
|
109
116
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TouchableOpacity","Text","View","StyleSheet","Platform","
|
|
1
|
+
{"version":3,"names":["useState","TouchableOpacity","Text","View","StyleSheet","Platform","useAuth","OxyLogo","jsx","_jsx","jsxs","_jsxs","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","isAuthenticated","signIn","isLoading","isSigningIn","setIsSigningIn","handlePress","error","__DEV__","console","log","isButtonDisabled","getButtonStyle","styles","buttonOutline","buttonContained","buttonDefault","getTextStyle","textOutline","textContained","textDefault","button","buttonDisabled","children","buttonContent","width","height","fillColor","secondaryFillColor","undefined","opacity","textDisabled","create","padding","borderRadius","alignItems","justifyContent","backgroundColor","borderWidth","borderColor","select","web","boxShadow","default","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flexDirection","fontFamily","OS","fontWeight","fontSize","marginLeft","color"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
|