@oxyhq/services 12.1.1 → 12.2.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/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/SignInModal.js +9 -2
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +8 -0
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +8 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +10 -2
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/utils/crossApex.js +74 -0
- package/lib/commonjs/utils/crossApex.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/SignInModal.js +9 -2
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +8 -0
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +8 -0
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +10 -2
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/utils/crossApex.js +69 -0
- package/lib/module/utils/crossApex.js.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/crossApex.d.ts +55 -0
- package/lib/typescript/commonjs/utils/crossApex.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/utils/crossApex.d.ts +55 -0
- package/lib/typescript/module/utils/crossApex.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/ui/components/SignInModal.tsx +18 -6
- package/src/ui/context/OxyContext.tsx +8 -0
- package/src/ui/context/hooks/useAuthOperations.ts +8 -0
- package/src/ui/screens/OxyAuthScreen.tsx +20 -6
- package/src/utils/crossApex.ts +75 -0
|
@@ -29,6 +29,7 @@ import OxyLogo from "../components/OxyLogo.js";
|
|
|
29
29
|
import AnotherDeviceQR from "../components/AnotherDeviceQR.js";
|
|
30
30
|
import LoadingState from "../components/LoadingState.js";
|
|
31
31
|
import { useOxyAuthSession, OXY_ACCOUNTS_WEB_URL } from "../hooks/useOxyAuthSession.js";
|
|
32
|
+
import { isCrossApexWeb } from "../../utils/crossApex.js";
|
|
32
33
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
33
34
|
const OxyAuthScreen = ({
|
|
34
35
|
goBack,
|
|
@@ -52,6 +53,13 @@ const OxyAuthScreen = ({
|
|
|
52
53
|
} = useOxyAuthSession(oxyServices, clientId, switchSession, {
|
|
53
54
|
onSignedIn: onAuthenticated
|
|
54
55
|
});
|
|
56
|
+
|
|
57
|
+
// On a cross-apex web RP, only the "Continue with Oxy" IdP popup establishes a
|
|
58
|
+
// durable `fedcm_session`. The Commons-app handoffs (same-device deep-link +
|
|
59
|
+
// cross-device QR) approve OUTSIDE the browser, so they leave no IdP session
|
|
60
|
+
// and the user would be logged out on reload — hide them there. Off-browser
|
|
61
|
+
// (native) this is always `false`, so the bottom sheet is unchanged.
|
|
62
|
+
const crossApexWeb = isCrossApexWeb();
|
|
55
63
|
if (isLoading) {
|
|
56
64
|
return /*#__PURE__*/_jsx(View, {
|
|
57
65
|
className: "flex-1 items-center justify-center bg-bg",
|
|
@@ -111,7 +119,7 @@ const OxyAuthScreen = ({
|
|
|
111
119
|
fillColor: bloomTheme.colors.primaryForeground
|
|
112
120
|
}),
|
|
113
121
|
children: "Continue with Oxy"
|
|
114
|
-
}), qrPayload && /*#__PURE__*/_jsx(Button, {
|
|
122
|
+
}), !crossApexWeb && qrPayload && /*#__PURE__*/_jsx(Button, {
|
|
115
123
|
variant: "secondary",
|
|
116
124
|
size: "large",
|
|
117
125
|
fullWidth: true,
|
|
@@ -131,7 +139,7 @@ const OxyAuthScreen = ({
|
|
|
131
139
|
className: "font-sans text-body text-text-secondary",
|
|
132
140
|
children: "Waiting for authorization..."
|
|
133
141
|
})]
|
|
134
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
142
|
+
}), !crossApexWeb && /*#__PURE__*/_jsx(View, {
|
|
135
143
|
className: "w-full mt-space-24",
|
|
136
144
|
children: /*#__PURE__*/_jsx(AnotherDeviceQR, {
|
|
137
145
|
qrData: qrData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","Linking","useTheme","Button","Loading","H4","Text","IconCircle","Icons","useOxy","OxyLogo","AnotherDeviceQR","LoadingState","useOxyAuthSession","OXY_ACCOUNTS_WEB_URL","jsx","_jsx","jsxs","_jsxs","OxyAuthScreen","goBack","onAuthenticated","bloomTheme","oxyServices","switchSession","clientId","qrData","qrPayload","isLoading","error","isWaiting","openAuthApproval","openSameDeviceApproval","retry","onSignedIn","className","children","size","color","colors","primary","message","icon","Warning_Stroke2_Corner0_Rounded","variant","fullWidth","onPress","ArrowRotateClockwise_Stroke2_Corner0_Rounded","style","primaryForeground","fillColor","text","openURL","accessibilityLabel"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,IAAI,EAAEC,OAAO,QAAQ,cAAc;AAE5C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,EAAE,EAAEC,IAAI,QAAQ,yBAAyB;AAClD,SAASC,UAAU,QAAQ,0BAA0B;AACrD,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,OAAOC,OAAO,MAAM,0BAAuB;AAC3C,OAAOC,eAAe,MAAM,kCAA+B;AAC3D,OAAOC,YAAY,MAAM,+BAA4B;AACrD,SAASC,iBAAiB,EAAEC,oBAAoB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["View","Linking","useTheme","Button","Loading","H4","Text","IconCircle","Icons","useOxy","OxyLogo","AnotherDeviceQR","LoadingState","useOxyAuthSession","OXY_ACCOUNTS_WEB_URL","isCrossApexWeb","jsx","_jsx","jsxs","_jsxs","OxyAuthScreen","goBack","onAuthenticated","bloomTheme","oxyServices","switchSession","clientId","qrData","qrPayload","isLoading","error","isWaiting","openAuthApproval","openSameDeviceApproval","retry","onSignedIn","crossApexWeb","className","children","size","color","colors","primary","message","icon","Warning_Stroke2_Corner0_Rounded","variant","fullWidth","onPress","ArrowRotateClockwise_Stroke2_Corner0_Rounded","style","primaryForeground","fillColor","text","openURL","accessibilityLabel"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Cross-apex web detection for sign-in durability gating.
|
|
5
|
+
*
|
|
6
|
+
* On a web Relying Party whose registrable apex differs from the central Oxy
|
|
7
|
+
* Identity Provider apex (`oxy.so`), the ONLY sign-in completion that survives a
|
|
8
|
+
* page reload is the interactive "Continue with Oxy" IdP flow, because it is the
|
|
9
|
+
* only one that establishes a first-party `fedcm_session` cookie at
|
|
10
|
+
* `auth.<apex>` — the anchor the cross-domain cold-boot restore reads on reload.
|
|
11
|
+
*
|
|
12
|
+
* The other sign-in completions the SDK can drive do NOT plant a `fedcm_session`:
|
|
13
|
+
* - password / public-key sign-in mints a bearer directly against the Oxy API
|
|
14
|
+
* (its refresh cookie is host-scoped to `api.oxy.so` and `SameSite=Lax`, so
|
|
15
|
+
* it is unreachable cross-site from the RP), and
|
|
16
|
+
* - the Commons-app device-flow handoff (cross-device QR / same-device
|
|
17
|
+
* deep-link) is approved OUTSIDE the browser, so no IdP browser session is
|
|
18
|
+
* established.
|
|
19
|
+
* On a cross-apex RP each of these leaves the user signed in for the current
|
|
20
|
+
* page only — a reload logs them out. See OxyHQServices AGENTS.md
|
|
21
|
+
* "Auth / Session Contract".
|
|
22
|
+
*
|
|
23
|
+
* Same-apex `*.oxy.so` apps (e.g. `accounts.oxy.so`) are first-party with
|
|
24
|
+
* `api.oxy.so`: their refresh cookie rides same-site requests so reload restore
|
|
25
|
+
* works without `fedcm_session`, and they are therefore NOT gated.
|
|
26
|
+
*
|
|
27
|
+
* Returns `false` off-browser (React Native has no `window.location`) and for
|
|
28
|
+
* hosts without a registrable apex (localhost / raw IP / single-label dev
|
|
29
|
+
* hosts), so native and local development keep every sign-in method.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
import { registrableApex, CENTRAL_IDP_APEX } from '@oxyhq/core';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Whether the given host is a web RP on a registrable apex other than the
|
|
36
|
+
* central Oxy IdP apex (`oxy.so`). See the module doc for why this gates the
|
|
37
|
+
* non-durable sign-in paths.
|
|
38
|
+
*
|
|
39
|
+
* @param hostname - The host to classify. Defaults to the current
|
|
40
|
+
* `window.location.hostname`; resolves to `undefined` off-browser (React
|
|
41
|
+
* Native / SSR), which yields `false`. The explicit parameter mirrors
|
|
42
|
+
* `autoDetectAuthWebUrl(location?)` and keeps the predicate unit-testable
|
|
43
|
+
* without manipulating the global `window.location`.
|
|
44
|
+
*/
|
|
45
|
+
export function isCrossApexWeb(hostname = typeof window !== 'undefined' ? window.location?.hostname : undefined) {
|
|
46
|
+
if (!hostname) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const apex = registrableApex(hostname);
|
|
50
|
+
return apex !== null && apex !== CENTRAL_IDP_APEX;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Thrown when an app attempts a direct (non-IdP) sign-in — password or
|
|
55
|
+
* public-key — on a cross-apex web RP, where such a sign-in would not survive a
|
|
56
|
+
* page reload because no `fedcm_session` is established (see {@link isCrossApexWeb}).
|
|
57
|
+
*
|
|
58
|
+
* Apps on a cross-apex apex must sign in through the interactive
|
|
59
|
+
* "Continue with Oxy" IdP flow (`OxySignInButton` / `showSignInModal()`), which
|
|
60
|
+
* plants the durable session.
|
|
61
|
+
*/
|
|
62
|
+
export class CrossApexDirectSignInError extends Error {
|
|
63
|
+
name = 'CrossApexDirectSignInError';
|
|
64
|
+
code = 'CROSS_APEX_DIRECT_SIGN_IN_UNSUPPORTED';
|
|
65
|
+
constructor() {
|
|
66
|
+
super('Direct sign-in is unavailable on this domain because the session would ' + 'not survive a page reload. Use "Continue with Oxy" to sign in through ' + 'the Oxy identity provider.');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=crossApex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registrableApex","CENTRAL_IDP_APEX","isCrossApexWeb","hostname","window","location","undefined","apex","CrossApexDirectSignInError","Error","name","code","constructor"],"sourceRoot":"../../../src","sources":["utils/crossApex.ts"],"mappings":";;AAAA;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;;AAEA,SAASA,eAAe,EAAEC,gBAAgB,QAAQ,aAAa;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,QAA4B,GAAG,OAAOC,MAAM,KAAK,WAAW,GACxDA,MAAM,CAACC,QAAQ,EAAEF,QAAQ,GACzBG,SAAS,EACJ;EACT,IAAI,CAACH,QAAQ,EAAE;IACb,OAAO,KAAK;EACd;EACA,MAAMI,IAAI,GAAGP,eAAe,CAACG,QAAQ,CAAC;EACtC,OAAOI,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKN,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,0BAA0B,SAASC,KAAK,CAAC;EAClCC,IAAI,GAAG,4BAA4B;EAC5CC,IAAI,GAAG,uCAAuC;EAEvDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CACH,yEAAyE,GACvE,wEAAwE,GACxE,4BACJ,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -48,6 +48,7 @@ export type { MutationStatus } from './ui/hooks/useMutationStatus';
|
|
|
48
48
|
export { useOnlineStatus } from './ui/hooks/useOnlineStatus';
|
|
49
49
|
export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage, } from './ui/utils/errorHandlers';
|
|
50
50
|
export type { HandleAuthErrorOptions } from './ui/utils/errorHandlers';
|
|
51
|
+
export { CrossApexDirectSignInError, isCrossApexWeb } from './utils/crossApex';
|
|
51
52
|
export { useFileFiltering } from './ui/hooks/useFileFiltering';
|
|
52
53
|
export type { ViewMode, SortBy, SortOrder } from './ui/hooks/useFileFiltering';
|
|
53
54
|
export { default as Avatar } from './ui/components/Avatar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAGxF,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EA8BxB,CAAC;AA8QF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAOvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAIvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAIvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;;OAMG;IACH,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,uBAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,kCAAkC;IAClC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+BAA+B;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAwBD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,mRAkB/B,wBAAwB,KAAG,uBA8P7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6I5C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-apex web detection for sign-in durability gating.
|
|
3
|
+
*
|
|
4
|
+
* On a web Relying Party whose registrable apex differs from the central Oxy
|
|
5
|
+
* Identity Provider apex (`oxy.so`), the ONLY sign-in completion that survives a
|
|
6
|
+
* page reload is the interactive "Continue with Oxy" IdP flow, because it is the
|
|
7
|
+
* only one that establishes a first-party `fedcm_session` cookie at
|
|
8
|
+
* `auth.<apex>` — the anchor the cross-domain cold-boot restore reads on reload.
|
|
9
|
+
*
|
|
10
|
+
* The other sign-in completions the SDK can drive do NOT plant a `fedcm_session`:
|
|
11
|
+
* - password / public-key sign-in mints a bearer directly against the Oxy API
|
|
12
|
+
* (its refresh cookie is host-scoped to `api.oxy.so` and `SameSite=Lax`, so
|
|
13
|
+
* it is unreachable cross-site from the RP), and
|
|
14
|
+
* - the Commons-app device-flow handoff (cross-device QR / same-device
|
|
15
|
+
* deep-link) is approved OUTSIDE the browser, so no IdP browser session is
|
|
16
|
+
* established.
|
|
17
|
+
* On a cross-apex RP each of these leaves the user signed in for the current
|
|
18
|
+
* page only — a reload logs them out. See OxyHQServices AGENTS.md
|
|
19
|
+
* "Auth / Session Contract".
|
|
20
|
+
*
|
|
21
|
+
* Same-apex `*.oxy.so` apps (e.g. `accounts.oxy.so`) are first-party with
|
|
22
|
+
* `api.oxy.so`: their refresh cookie rides same-site requests so reload restore
|
|
23
|
+
* works without `fedcm_session`, and they are therefore NOT gated.
|
|
24
|
+
*
|
|
25
|
+
* Returns `false` off-browser (React Native has no `window.location`) and for
|
|
26
|
+
* hosts without a registrable apex (localhost / raw IP / single-label dev
|
|
27
|
+
* hosts), so native and local development keep every sign-in method.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Whether the given host is a web RP on a registrable apex other than the
|
|
31
|
+
* central Oxy IdP apex (`oxy.so`). See the module doc for why this gates the
|
|
32
|
+
* non-durable sign-in paths.
|
|
33
|
+
*
|
|
34
|
+
* @param hostname - The host to classify. Defaults to the current
|
|
35
|
+
* `window.location.hostname`; resolves to `undefined` off-browser (React
|
|
36
|
+
* Native / SSR), which yields `false`. The explicit parameter mirrors
|
|
37
|
+
* `autoDetectAuthWebUrl(location?)` and keeps the predicate unit-testable
|
|
38
|
+
* without manipulating the global `window.location`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isCrossApexWeb(hostname?: string | undefined): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Thrown when an app attempts a direct (non-IdP) sign-in — password or
|
|
43
|
+
* public-key — on a cross-apex web RP, where such a sign-in would not survive a
|
|
44
|
+
* page reload because no `fedcm_session` is established (see {@link isCrossApexWeb}).
|
|
45
|
+
*
|
|
46
|
+
* Apps on a cross-apex apex must sign in through the interactive
|
|
47
|
+
* "Continue with Oxy" IdP flow (`OxySignInButton` / `showSignInModal()`), which
|
|
48
|
+
* plants the durable session.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CrossApexDirectSignInError extends Error {
|
|
51
|
+
readonly name = "CrossApexDirectSignInError";
|
|
52
|
+
readonly code = "CROSS_APEX_DIRECT_SIGN_IN_UNSUPPORTED";
|
|
53
|
+
constructor();
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=crossApex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossApex.d.ts","sourceRoot":"","sources":["../../../../src/utils/crossApex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,GAAE,MAAM,GAAG,SAEN,GACZ,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAkB,IAAI,gCAAgC;IACtD,QAAQ,CAAC,IAAI,2CAA2C;;CASzD"}
|
|
@@ -48,6 +48,7 @@ export type { MutationStatus } from './ui/hooks/useMutationStatus';
|
|
|
48
48
|
export { useOnlineStatus } from './ui/hooks/useOnlineStatus';
|
|
49
49
|
export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage, } from './ui/utils/errorHandlers';
|
|
50
50
|
export type { HandleAuthErrorOptions } from './ui/utils/errorHandlers';
|
|
51
|
+
export { CrossApexDirectSignInError, isCrossApexWeb } from './utils/crossApex';
|
|
51
52
|
export { useFileFiltering } from './ui/hooks/useFileFiltering';
|
|
52
53
|
export type { ViewMode, SortBy, SortOrder } from './ui/hooks/useFileFiltering';
|
|
53
54
|
export { default as Avatar } from './ui/components/Avatar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAGxF,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EA8BxB,CAAC;AA8QF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAOvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAIvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAIvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;;OAMG;IACH,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,uBAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,kCAAkC;IAClC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+BAA+B;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAwBD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,mRAkB/B,wBAAwB,KAAG,uBA8P7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6I5C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-apex web detection for sign-in durability gating.
|
|
3
|
+
*
|
|
4
|
+
* On a web Relying Party whose registrable apex differs from the central Oxy
|
|
5
|
+
* Identity Provider apex (`oxy.so`), the ONLY sign-in completion that survives a
|
|
6
|
+
* page reload is the interactive "Continue with Oxy" IdP flow, because it is the
|
|
7
|
+
* only one that establishes a first-party `fedcm_session` cookie at
|
|
8
|
+
* `auth.<apex>` — the anchor the cross-domain cold-boot restore reads on reload.
|
|
9
|
+
*
|
|
10
|
+
* The other sign-in completions the SDK can drive do NOT plant a `fedcm_session`:
|
|
11
|
+
* - password / public-key sign-in mints a bearer directly against the Oxy API
|
|
12
|
+
* (its refresh cookie is host-scoped to `api.oxy.so` and `SameSite=Lax`, so
|
|
13
|
+
* it is unreachable cross-site from the RP), and
|
|
14
|
+
* - the Commons-app device-flow handoff (cross-device QR / same-device
|
|
15
|
+
* deep-link) is approved OUTSIDE the browser, so no IdP browser session is
|
|
16
|
+
* established.
|
|
17
|
+
* On a cross-apex RP each of these leaves the user signed in for the current
|
|
18
|
+
* page only — a reload logs them out. See OxyHQServices AGENTS.md
|
|
19
|
+
* "Auth / Session Contract".
|
|
20
|
+
*
|
|
21
|
+
* Same-apex `*.oxy.so` apps (e.g. `accounts.oxy.so`) are first-party with
|
|
22
|
+
* `api.oxy.so`: their refresh cookie rides same-site requests so reload restore
|
|
23
|
+
* works without `fedcm_session`, and they are therefore NOT gated.
|
|
24
|
+
*
|
|
25
|
+
* Returns `false` off-browser (React Native has no `window.location`) and for
|
|
26
|
+
* hosts without a registrable apex (localhost / raw IP / single-label dev
|
|
27
|
+
* hosts), so native and local development keep every sign-in method.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Whether the given host is a web RP on a registrable apex other than the
|
|
31
|
+
* central Oxy IdP apex (`oxy.so`). See the module doc for why this gates the
|
|
32
|
+
* non-durable sign-in paths.
|
|
33
|
+
*
|
|
34
|
+
* @param hostname - The host to classify. Defaults to the current
|
|
35
|
+
* `window.location.hostname`; resolves to `undefined` off-browser (React
|
|
36
|
+
* Native / SSR), which yields `false`. The explicit parameter mirrors
|
|
37
|
+
* `autoDetectAuthWebUrl(location?)` and keeps the predicate unit-testable
|
|
38
|
+
* without manipulating the global `window.location`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isCrossApexWeb(hostname?: string | undefined): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Thrown when an app attempts a direct (non-IdP) sign-in — password or
|
|
43
|
+
* public-key — on a cross-apex web RP, where such a sign-in would not survive a
|
|
44
|
+
* page reload because no `fedcm_session` is established (see {@link isCrossApexWeb}).
|
|
45
|
+
*
|
|
46
|
+
* Apps on a cross-apex apex must sign in through the interactive
|
|
47
|
+
* "Continue with Oxy" IdP flow (`OxySignInButton` / `showSignInModal()`), which
|
|
48
|
+
* plants the durable session.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CrossApexDirectSignInError extends Error {
|
|
51
|
+
readonly name = "CrossApexDirectSignInError";
|
|
52
|
+
readonly code = "CROSS_APEX_DIRECT_SIGN_IN_UNSUPPORTED";
|
|
53
|
+
constructor();
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=crossApex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossApex.d.ts","sourceRoot":"","sources":["../../../../src/utils/crossApex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,GAAE,MAAM,GAAG,SAEN,GACZ,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAkB,IAAI,gCAAgC;IACtD,QAAQ,CAAC,IAAI,2CAA2C;;CASzD"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -180,6 +180,10 @@ export {
|
|
|
180
180
|
extractErrorMessage,
|
|
181
181
|
} from './ui/utils/errorHandlers';
|
|
182
182
|
export type { HandleAuthErrorOptions } from './ui/utils/errorHandlers';
|
|
183
|
+
// Thrown by `signInWithPassword` / `signIn` on a cross-apex web RP, where a
|
|
184
|
+
// direct (non-IdP) sign-in would not survive a page reload — apps catch it to
|
|
185
|
+
// route the user to the durable "Continue with Oxy" IdP flow.
|
|
186
|
+
export { CrossApexDirectSignInError, isCrossApexWeb } from './utils/crossApex';
|
|
183
187
|
|
|
184
188
|
// ---------------------------------------------------------------------------
|
|
185
189
|
// File filtering
|
|
@@ -30,6 +30,7 @@ import { useOxy } from '../context/OxyContext';
|
|
|
30
30
|
import OxyLogo from './OxyLogo';
|
|
31
31
|
import AnotherDeviceQR from './AnotherDeviceQR';
|
|
32
32
|
import { useOxyAuthSession, OXY_ACCOUNTS_WEB_URL } from '../hooks/useOxyAuthSession';
|
|
33
|
+
import { isCrossApexWeb } from '../../utils/crossApex';
|
|
33
34
|
|
|
34
35
|
// Store for modal visibility with subscription support
|
|
35
36
|
let modalVisible = false;
|
|
@@ -110,6 +111,12 @@ const SignInModalContent: React.FC<SignInModalContentProps> = ({
|
|
|
110
111
|
{ onSignedIn: hideSignInModal },
|
|
111
112
|
);
|
|
112
113
|
|
|
114
|
+
// On a cross-apex web RP, only the "Continue with Oxy" IdP popup establishes
|
|
115
|
+
// a durable `fedcm_session`. The Commons-app handoffs (same-device deep-link
|
|
116
|
+
// + cross-device QR) approve OUTSIDE the browser, so they leave no IdP
|
|
117
|
+
// session and the user would be logged out on reload — hide them there.
|
|
118
|
+
const crossApexWeb = isCrossApexWeb();
|
|
119
|
+
|
|
113
120
|
// Entrance animation.
|
|
114
121
|
const opacity = useSharedValue(0);
|
|
115
122
|
const scale = useSharedValue(0.96);
|
|
@@ -194,8 +201,9 @@ const SignInModalContent: React.FC<SignInModalContentProps> = ({
|
|
|
194
201
|
|
|
195
202
|
{/* Same-device "Sign in with Oxy" handoff — deep-links into the
|
|
196
203
|
native Oxy app to approve. Shown only when the handoff backend
|
|
197
|
-
returned a payload
|
|
198
|
-
|
|
204
|
+
returned a payload, and never on a cross-apex web RP (the
|
|
205
|
+
approval happens outside the browser → no durable session). */}
|
|
206
|
+
{!crossApexWeb && qrPayload && (
|
|
199
207
|
<Button
|
|
200
208
|
variant="secondary"
|
|
201
209
|
onPress={openSameDeviceApproval}
|
|
@@ -216,10 +224,14 @@ const SignInModalContent: React.FC<SignInModalContentProps> = ({
|
|
|
216
224
|
</View>
|
|
217
225
|
)}
|
|
218
226
|
|
|
219
|
-
{/* Collapsed "sign in on another device" QR disclosure
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
227
|
+
{/* Collapsed "sign in on another device" QR disclosure. Hidden on
|
|
228
|
+
a cross-apex web RP: a remote Commons-app approval completes via
|
|
229
|
+
the device-flow claim, which plants no `fedcm_session`. */}
|
|
230
|
+
{!crossApexWeb && (
|
|
231
|
+
<View style={styles.qrSection}>
|
|
232
|
+
<AnotherDeviceQR qrData={qrData} qrPayload={qrPayload} />
|
|
233
|
+
</View>
|
|
234
|
+
)}
|
|
223
235
|
</>
|
|
224
236
|
)}
|
|
225
237
|
|
|
@@ -53,6 +53,7 @@ import { useAccountStore } from '../stores/accountStore';
|
|
|
53
53
|
import { logger as loggerUtil } from '@oxyhq/core';
|
|
54
54
|
import { useWebSSO, isWebBrowser } from '../hooks/useWebSSO';
|
|
55
55
|
import { buildSilentGuardKey } from '../../utils/silentGuardKey';
|
|
56
|
+
import { isCrossApexWeb, CrossApexDirectSignInError } from '../../utils/crossApex';
|
|
56
57
|
import { createInSessionRefreshHandler, startTokenRefreshScheduler } from './inSessionTokenRefresh';
|
|
57
58
|
import { mintSessionViaPerApexIframe, selectActiveRefreshAccount } from './silentSessionRestore';
|
|
58
59
|
|
|
@@ -1776,6 +1777,13 @@ export const OxyProvider: React.FC<OxyContextProviderProps> = ({
|
|
|
1776
1777
|
password: string,
|
|
1777
1778
|
opts?: { deviceName?: string; deviceFingerprint?: string },
|
|
1778
1779
|
): Promise<PasswordSignInResult> => {
|
|
1780
|
+
// On a cross-apex web RP a direct password sign-in mints a bearer against
|
|
1781
|
+
// the Oxy API but establishes no `fedcm_session`, so the session would be
|
|
1782
|
+
// lost on reload. Refuse it and direct the app to the durable IdP popup
|
|
1783
|
+
// ("Continue with Oxy"). Native and same-apex `*.oxy.so` are unaffected.
|
|
1784
|
+
if (isCrossApexWeb()) {
|
|
1785
|
+
throw new CrossApexDirectSignInError();
|
|
1786
|
+
}
|
|
1779
1787
|
const response = await oxyServices.signIn(
|
|
1780
1788
|
identifier,
|
|
1781
1789
|
password,
|
|
@@ -10,6 +10,7 @@ import type { OxyServices } from '@oxyhq/core';
|
|
|
10
10
|
import { SignatureService } from '@oxyhq/core';
|
|
11
11
|
import { isWebBrowser } from '../../hooks/useWebSSO';
|
|
12
12
|
import { clearActiveAuthuser, clearSsoBounceState } from '../../utils/activeAuthuser';
|
|
13
|
+
import { isCrossApexWeb, CrossApexDirectSignInError } from '../../../utils/crossApex';
|
|
13
14
|
|
|
14
15
|
export interface UseAuthOperationsOptions {
|
|
15
16
|
oxyServices: OxyServices;
|
|
@@ -203,6 +204,13 @@ export const useAuthOperations = ({
|
|
|
203
204
|
*/
|
|
204
205
|
const signIn = useCallback(
|
|
205
206
|
async (publicKey: string, deviceName?: string): Promise<User> => {
|
|
207
|
+
// On a cross-apex web RP a direct public-key sign-in mints a bearer against
|
|
208
|
+
// the Oxy API but establishes no `fedcm_session`, so the session would be
|
|
209
|
+
// lost on reload. Refuse it and direct the app to the durable IdP popup
|
|
210
|
+
// ("Continue with Oxy"). Native and same-apex `*.oxy.so` are unaffected.
|
|
211
|
+
if (isCrossApexWeb()) {
|
|
212
|
+
throw new CrossApexDirectSignInError();
|
|
213
|
+
}
|
|
206
214
|
setAuthState({ isLoading: true, error: null });
|
|
207
215
|
|
|
208
216
|
try {
|
|
@@ -29,6 +29,7 @@ import OxyLogo from '../components/OxyLogo';
|
|
|
29
29
|
import AnotherDeviceQR from '../components/AnotherDeviceQR';
|
|
30
30
|
import LoadingState from '../components/LoadingState';
|
|
31
31
|
import { useOxyAuthSession, OXY_ACCOUNTS_WEB_URL } from '../hooks/useOxyAuthSession';
|
|
32
|
+
import { isCrossApexWeb } from '../../utils/crossApex';
|
|
32
33
|
|
|
33
34
|
const OxyAuthScreen: React.FC<BaseScreenProps> = ({ goBack, onAuthenticated }) => {
|
|
34
35
|
const bloomTheme = useTheme();
|
|
@@ -41,6 +42,13 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({ goBack, onAuthenticated }) =
|
|
|
41
42
|
{ onSignedIn: onAuthenticated },
|
|
42
43
|
);
|
|
43
44
|
|
|
45
|
+
// On a cross-apex web RP, only the "Continue with Oxy" IdP popup establishes a
|
|
46
|
+
// durable `fedcm_session`. The Commons-app handoffs (same-device deep-link +
|
|
47
|
+
// cross-device QR) approve OUTSIDE the browser, so they leave no IdP session
|
|
48
|
+
// and the user would be logged out on reload — hide them there. Off-browser
|
|
49
|
+
// (native) this is always `false`, so the bottom sheet is unchanged.
|
|
50
|
+
const crossApexWeb = isCrossApexWeb();
|
|
51
|
+
|
|
44
52
|
if (isLoading) {
|
|
45
53
|
return (
|
|
46
54
|
<View className="flex-1 items-center justify-center bg-bg">
|
|
@@ -104,8 +112,10 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({ goBack, onAuthenticated }) =
|
|
|
104
112
|
</Button>
|
|
105
113
|
|
|
106
114
|
{/* Same-device "Sign in with Oxy" handoff — deep-links into the native Oxy
|
|
107
|
-
app to approve. Shown only when the handoff backend returned a payload
|
|
108
|
-
|
|
115
|
+
app to approve. Shown only when the handoff backend returned a payload,
|
|
116
|
+
and never on a cross-apex web RP (approval happens outside the browser
|
|
117
|
+
→ no durable session). */}
|
|
118
|
+
{!crossApexWeb && qrPayload && (
|
|
109
119
|
<Button
|
|
110
120
|
variant="secondary"
|
|
111
121
|
size="large"
|
|
@@ -130,10 +140,14 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({ goBack, onAuthenticated }) =
|
|
|
130
140
|
</View>
|
|
131
141
|
)}
|
|
132
142
|
|
|
133
|
-
{/* Collapsed "sign in on another device" QR disclosure
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
143
|
+
{/* Collapsed "sign in on another device" QR disclosure. Hidden on a
|
|
144
|
+
cross-apex web RP: a remote Commons-app approval completes via the
|
|
145
|
+
device-flow claim, which plants no `fedcm_session`. */}
|
|
146
|
+
{!crossApexWeb && (
|
|
147
|
+
<View className="w-full mt-space-24">
|
|
148
|
+
<AnotherDeviceQR qrData={qrData} qrPayload={qrPayload} />
|
|
149
|
+
</View>
|
|
150
|
+
)}
|
|
137
151
|
|
|
138
152
|
{/* Footer — create an account */}
|
|
139
153
|
<View className="flex-row flex-wrap justify-center items-center mt-space-24">
|