@oxyhq/services 6.10.2 → 6.10.3
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/ui/context/hooks/useAuthOperations.js +22 -9
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +47 -2
- package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +22 -9
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/useWebSSO.js +47 -2
- package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ui/context/hooks/useAuthOperations.ts +22 -9
- package/src/ui/hooks/useWebSSO.ts +48 -2
|
@@ -144,16 +144,29 @@ const useAuthOperations = ({
|
|
|
144
144
|
// Verify and create session
|
|
145
145
|
sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
146
146
|
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
147
|
+
// Plant the first access token. `/auth/verify` already returns the
|
|
148
|
+
// freshly-minted access token in its response body, so use it
|
|
149
|
+
// directly. We must NOT fall back to `GET /session/token/:sessionId`
|
|
150
|
+
// here for a brand-new sign-in: that route is bearer-protected (C1
|
|
151
|
+
// hardening) and the client has no bearer yet, so calling it without
|
|
152
|
+
// a token returns 401 "Invalid or missing authorization header" —
|
|
153
|
+
// which previously broke the entire new-identity onboarding flow.
|
|
154
|
+
// Only when the verify response somehow omits the token do we fall
|
|
155
|
+
// back, and by then `setTokens` has not run so a 401 there is a real
|
|
156
|
+
// server fault worth surfacing.
|
|
157
|
+
if (sessionResponse.accessToken) {
|
|
158
|
+
oxyServices.setTokens(sessionResponse.accessToken, sessionResponse.refreshToken ?? '');
|
|
159
|
+
} else {
|
|
160
|
+
try {
|
|
161
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
162
|
+
} catch (tokenError) {
|
|
163
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
164
|
+
const status = isErrorWithCodeOrStatus(tokenError) ? tokenError.status : undefined;
|
|
165
|
+
if (status === 404 || errorMessage.includes('404')) {
|
|
166
|
+
throw new Error(`Session was created but token could not be retrieved. Session ID: ${sessionResponse.sessionId.substring(0, 8)}...`);
|
|
167
|
+
}
|
|
168
|
+
throw tokenError;
|
|
155
169
|
}
|
|
156
|
-
throw tokenError;
|
|
157
170
|
}
|
|
158
171
|
|
|
159
172
|
// Get full user data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_sessionHelpers","_errorHandlers","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isErrorWithCodeOrStatus","error","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","logger","sessionsRef","useRef","current","performSignIn","useCallback","publicKey","deviceFingerprintObj","DeviceManager","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","isOffline","challengeResponse","requestChallenge","errorMessage","Error","message","String","isNetworkError","includes","code","status","__DEV__","SignatureService","generateChallenge","signature","timestamp","signChallenge","fullUser","sessionResponse","Crypto","Promise","resolve","then","localSessionId","getRandomUUID","localDeviceId","expiresAt","Date","now","toISOString","id","username","privacySettings","sessionId","deviceId","user","offlineSession","lastActive","userId","isCurrent","merge","setItem","verifyChallenge","getTokenBySession","tokenError","undefined","substring","getUserBySession","allDeviceSessions","fetchSessionsWithFallback","fallbackDeviceId","fallbackUserId","existingSession","find","session","toString","logoutSession","logoutError","filter","signIn","isLoading","handleAuthError","defaultMessage","setAuthError","msg","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","isInvalidSessionError","logoutAll","logoutAllSessions","exports"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAAmF,SAAAI,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAKnF;AACA,SAASkB,uBAAuBA,CAACC,KAAc,EAAiE;EAC9G,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI;AACpD;AA+BA,MAAMC,gBAAgB,GAAG,aAAa;AACtC,MAAMC,iBAAiB,GAAG,cAAc;AACxC,MAAMC,qBAAqB,GAAG,kBAAkB;;AAEhD;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,WAAW;EACXC,OAAO;EACPC,QAAQ;EACRC,eAAe;EACfC,kBAAkB;EAClBC,cAAc;EACdC,mBAAmB;EACnBC,iBAAiB;EACjBC,aAAa;EACbC,uBAAuB;EACvBC,iBAAiB;EACjBC,OAAO;EACPC,YAAY;EACZC,YAAY;EACZC,WAAW;EACXC,YAAY;EACZC;AACwB,CAAC,KAA8B;EACvD;EACA,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAChB,QAAQ,CAAC;EACpCe,WAAW,CAACE,OAAO,GAAGjB,QAAQ;;EAE9B;AACF;AACA;EACE,MAAMkB,aAAa,GAAG,IAAAC,kBAAW,EAC/B,MAAOC,SAAiB,IAAoB;IAC1C,MAAMC,oBAAoB,GAAGC,mBAAa,CAACC,oBAAoB,CAAC,CAAC;IACjE,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,SAAS,CAACL,oBAAoB,CAAC;IAC9D,MAAMM,UAAU,GAAG,MAAML,mBAAa,CAACM,aAAa,CAAC,CAAC;IACtD,MAAMC,UAAU,GAAGF,UAAU,CAACE,UAAU,IAAIP,mBAAa,CAACQ,oBAAoB,CAAC,CAAC;IAEhF,IAAIC,SAAiB;IACrB,IAAIC,SAAS,GAAG,KAAK;;IAErB;IACA,IAAI;MACF,MAAMC,iBAAiB,GAAG,MAAMnC,WAAW,CAACoC,gBAAgB,CAACd,SAAS,CAAC;MACvEW,SAAS,GAAGE,iBAAiB,CAACF,SAAS;IACzC,CAAC,CAAC,OAAOtC,KAAK,EAAE;MACd;MACA,MAAM0C,YAAY,GAAG1C,KAAK,YAAY2C,KAAK,GAAG3C,KAAK,CAAC4C,OAAO,GAAGC,MAAM,CAAC7C,KAAK,CAAC;MAC3E,MAAM8C,cAAc,GAClBJ,YAAY,CAACK,QAAQ,CAAC,SAAS,CAAC,IAChCL,YAAY,CAACK,QAAQ,CAAC,SAAS,CAAC,IAChCL,YAAY,CAACK,QAAQ,CAAC,iBAAiB,CAAC,IACxCL,YAAY,CAACK,QAAQ,CAAC,cAAc,CAAC,IACpChD,uBAAuB,CAACC,KAAK,CAAC,IAAIA,KAAK,CAACgD,IAAI,KAAK,eAAgB,IACjEjD,uBAAuB,CAACC,KAAK,CAAC,IAAIA,KAAK,CAACiD,MAAM,KAAK,CAAE;MAExD,IAAIH,cAAc,EAAE;QAClB,IAAII,OAAO,IAAI7B,MAAM,EAAE;UACrBA,MAAM,CAAC,iDAAiD,CAAC;QAC3D;QACA;QACAiB,SAAS,GAAG,MAAMa,sBAAgB,CAACC,iBAAiB,CAAC,CAAC;QACtDb,SAAS,GAAG,IAAI;MAClB,CAAC,MAAM;QACL;QACA,MAAMvC,KAAK;MACb;IACF;;IAEA;IACA;IACA;;IAEA;IACA,MAAM;MAAEsC,SAAS,EAAEe,SAAS;MAAEC;IAAU,CAAC,GAAG,MAAMH,sBAAgB,CAACI,aAAa,CAACjB,SAAS,CAAC;IAE3F,IAAIkB,QAAc;IAClB,IAAIC,eAAqC;IAEzC,IAAIlB,SAAS,EAAE;MACb;MACA,IAAIW,OAAO,IAAI7B,MAAM,EAAE;QACrBA,MAAM,CAAC,0BAA0B,CAAC;MACpC;;MAEA;MACA,MAAMqC,MAAM,GAAG,MAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAlF,uBAAA,CAAAJ,OAAA,CAAa,aAAa,GAAC;MAC1C,MAAMuF,cAAc,GAAG,WAAWJ,MAAM,CAACK,aAAa,CAAC,CAAC,EAAE;MAC1D,MAAMC,aAAa,GAAG,UAAUN,MAAM,CAACK,aAAa,CAAC,CAAC,EAAE;MACxD,MAAME,SAAS,GAAG,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC,CAAC;;MAEhF;MACAZ,QAAQ,GAAG;QACTa,EAAE,EAAE1C,SAAS;QAAE;QACfA,SAAS;QACT2C,QAAQ,EAAE,EAAE;QACZC,eAAe,EAAE,CAAC;MACpB,CAAS;MAETd,eAAe,GAAG;QAChBe,SAAS,EAAEV,cAAc;QACzBW,QAAQ,EAAET,aAAa;QACvBC,SAAS;QACTS,IAAI,EAAE;UACJL,EAAE,EAAE1C,SAAS;UACb2C,QAAQ,EAAE;QACZ;MACF,CAAC;;MAED;MACA,MAAMK,cAA6B,GAAG;QACpCH,SAAS,EAAEV,cAAc;QACzBW,QAAQ,EAAET,aAAa;QACvBC,SAAS;QACTW,UAAU,EAAE,IAAIV,IAAI,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC;QACpCS,MAAM,EAAElD,SAAS;QACjBmD,SAAS,EAAE;MACb,CAAC;MAEDrE,kBAAkB,CAACqD,cAAc,CAAC;MAClC,MAAMnD,mBAAmB,CAACmD,cAAc,CAAC;MACzCpD,cAAc,CAAC,CAACiE,cAAc,CAAC,EAAE;QAAEI,KAAK,EAAE;MAAK,CAAC,CAAC;;MAEjD;MACA,IAAIzE,OAAO,EAAE;QACX,MAAMA,OAAO,CAAC0E,OAAO,CAAC,eAAelB,cAAc,UAAU,EAAE,MAAM,CAAC;MACxE;MAEA,IAAIZ,OAAO,IAAI7B,MAAM,EAAE;QACrBA,MAAM,CAAC,4BAA4B,CAAC;MACtC;IACF,CAAC,MAAM;MACL;MACA;MACAoC,eAAe,GAAG,MAAMpD,WAAW,CAAC4E,eAAe,CACjDtD,SAAS,EACTW,SAAS,EACTe,SAAS,EACTC,SAAS,EACTlB,UAAU,EACVL,iBACF,CAAC;;MAED;MACA,IAAI;QACF,MAAM1B,WAAW,CAAC6E,iBAAiB,CAACzB,eAAe,CAACe,SAAS,CAAC;MAChE,CAAC,CAAC,OAAOW,UAAmB,EAAE;QAC5B,MAAMzC,YAAY,GAAGyC,UAAU,YAAYxC,KAAK,GAAGwC,UAAU,CAACvC,OAAO,GAAGC,MAAM,CAACsC,UAAU,CAAC;QAC1F,MAAMlC,MAAM,GAAGlD,uBAAuB,CAACoF,UAAU,CAAC,GAAGA,UAAU,CAAClC,MAAM,GAAGmC,SAAS;QAClF,IAAInC,MAAM,KAAK,GAAG,IAAIP,YAAY,CAACK,QAAQ,CAAC,KAAK,CAAC,EAAE;UAClD,MAAM,IAAIJ,KAAK,CAAC,qEAAqEc,eAAe,CAACe,SAAS,CAACa,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtI;QACA,MAAMF,UAAU;MAClB;;MAEA;MACA3B,QAAQ,GAAG,MAAMnD,WAAW,CAACiF,gBAAgB,CAAC7B,eAAe,CAACe,SAAS,CAAC;;MAExE;MACA,IAAIe,iBAAkC,GAAG,EAAE;MAC3C,IAAI;QACFA,iBAAiB,GAAG,MAAM,IAAAC,yCAAyB,EAACnF,WAAW,EAAEoD,eAAe,CAACe,SAAS,EAAE;UAC1FiB,gBAAgB,EAAEhC,eAAe,CAACgB,QAAQ;UAC1CiB,cAAc,EAAElC,QAAQ,CAACa,EAAE;UAC3BhD;QACF,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOrB,KAAK,EAAE;QACd,IAAIkD,OAAO,IAAI7B,MAAM,EAAE;UACrBA,MAAM,CAAC,6CAA6C,EAAErB,KAAK,CAAC;QAC9D;MACF;;MAEA;MACA,MAAM2F,eAAe,GAAGJ,iBAAiB,CAACK,IAAI,CAC3CC,OAAO,IACNA,OAAO,CAAChB,MAAM,EAAEiB,QAAQ,CAAC,CAAC,KAAKtC,QAAQ,CAACa,EAAE,EAAEyB,QAAQ,CAAC,CAAC,IACtDD,OAAO,CAACrB,SAAS,KAAKf,eAAe,CAACe,SAC1C,CAAC;MAED,IAAImB,eAAe,EAAE;QACnB;QACA,IAAI;UACF,MAAMtF,WAAW,CAAC0F,aAAa,CAACtC,eAAe,CAACe,SAAS,EAAEf,eAAe,CAACe,SAAS,CAAC;QACvF,CAAC,CAAC,OAAOwB,WAAW,EAAE;UACpB;UACA,IAAI9C,OAAO,IAAI7B,MAAM,EAAE;YACrBA,MAAM,CAAC,4DAA4D,EAAE2E,WAAW,CAAC;UACnF;QACF;QACA,MAAMnF,aAAa,CAAC8E,eAAe,CAACnB,SAAS,CAAC;QAC9C9D,cAAc,CACZ6E,iBAAiB,CAACU,MAAM,CAAEJ,OAAO,IAAKA,OAAO,CAACrB,SAAS,KAAKf,eAAe,CAACe,SAAS,CAAC,EACtF;UAAEO,KAAK,EAAE;QAAM,CACjB,CAAC;QACDhE,iBAAiB,GAAGyC,QAAQ,CAAC;QAC7B,OAAOA,QAAQ;MACjB;MAEA/C,kBAAkB,CAACgD,eAAe,CAACe,SAAS,CAAC;MAC7C,MAAM7D,mBAAmB,CAAC8C,eAAe,CAACe,SAAS,CAAC;MACpD9D,cAAc,CAAC6E,iBAAiB,EAAE;QAAER,KAAK,EAAE;MAAK,CAAC,CAAC;IACpD;IAEA,MAAMjE,uBAAuB,CAAC0C,QAAQ,CAAC;IACvCvC,YAAY,CAACuC,QAAQ,CAAC;IACtBzC,iBAAiB,GAAGyC,QAAQ,CAAC;IAE7B,OAAOA,QAAQ;EACjB,CAAC,EACD,CACE1C,uBAAuB,EACvBO,MAAM,EACNJ,YAAY,EACZF,iBAAiB,EACjBV,WAAW,EACXM,mBAAmB,EACnBF,kBAAkB,EAClBI,aAAa,EACbH,cAAc,EACdJ,OAAO,CAEX,CAAC;;EAED;AACF;AACA;EACE,MAAM4F,MAAM,GAAG,IAAAxE,kBAAW,EACxB,OAAOC,SAAiB,EAAES,UAAmB,KAAoB;IAC/DhB,YAAY,CAAC;MAAE+E,SAAS,EAAE,IAAI;MAAEnG,KAAK,EAAE;IAAK,CAAC,CAAC;IAE9C,IAAI;MACF,OAAO,MAAMyB,aAAa,CAACE,SAAS,CAAC;IACvC,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd,MAAM4C,OAAO,GAAG,IAAAwD,8BAAe,EAACpG,KAAK,EAAE;QACrCqG,cAAc,EAAE,gBAAgB;QAChCrD,IAAI,EAAE/C,gBAAgB;QACtBe,OAAO;QACPsF,YAAY,EAAGC,GAAW,IAAKnF,YAAY,CAAC;UAAEpB,KAAK,EAAEuG;QAAI,CAAC,CAAC;QAC3DlF;MACF,CAAC,CAAC;MACFH,YAAY,CAAC0B,OAAO,CAAC;MACrB,MAAM5C,KAAK;IACb,CAAC,SAAS;MACRoB,YAAY,CAAC;QAAE+E,SAAS,EAAE;MAAM,CAAC,CAAC;IACpC;EACF,CAAC,EACD,CAAC/E,YAAY,EAAEK,aAAa,EAAEP,YAAY,EAAEF,OAAO,EAAEK,MAAM,CAC7D,CAAC;;EAED;AACF;AACA;EACE,MAAMmF,MAAM,GAAG,IAAA9E,kBAAW,EACxB,MAAO+E,eAAwB,IAAoB;IACjD,IAAI,CAACjG,eAAe,EAAE;IAEtB,IAAI;MACF,MAAMkG,eAAe,GAAGD,eAAe,IAAIjG,eAAe;MAC1D,MAAMH,WAAW,CAAC0F,aAAa,CAACvF,eAAe,EAAEkG,eAAe,CAAC;MAEjE,MAAMC,gBAAgB,GAAGrF,WAAW,CAACE,OAAO,CAACyE,MAAM,CAAEJ,OAAO,IAAKA,OAAO,CAACrB,SAAS,KAAKkC,eAAe,CAAC;MACvGhG,cAAc,CAACiG,gBAAgB,EAAE;QAAE5B,KAAK,EAAE;MAAM,CAAC,CAAC;MAElD,IAAI2B,eAAe,KAAKlG,eAAe,EAAE;QACvC,IAAImG,gBAAgB,CAACC,MAAM,GAAG,CAAC,EAAE;UAC/B,MAAM/F,aAAa,CAAC8F,gBAAgB,CAAC,CAAC,CAAC,CAACnC,SAAS,CAAC;QACpD,CAAC,MAAM;UACL,MAAM5D,iBAAiB,CAAC,CAAC;UACzB;QACF;MACF;IACF,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACd,MAAM6G,SAAS,GAAG,IAAAC,oCAAqB,EAAC9G,KAAK,CAAC;MAE9C,IAAI6G,SAAS,IAAIJ,eAAe,KAAKjG,eAAe,EAAE;QACpD,MAAMI,iBAAiB,CAAC,CAAC;QACzB;MACF;MAEA,IAAAwF,8BAAe,EAACpG,KAAK,EAAE;QACrBqG,cAAc,EAAE,eAAe;QAC/BrD,IAAI,EAAE9C,iBAAiB;QACvBc,OAAO;QACPsF,YAAY,EAAGC,GAAW,IAAKnF,YAAY,CAAC;UAAEpB,KAAK,EAAEuG;QAAI,CAAC,CAAC;QAC3DlF,MAAM;QACN4B,MAAM,EAAE4D,SAAS,GAAG,GAAG,GAAGzB;MAC5B,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CACE5E,eAAe,EACfI,iBAAiB,EACjBS,MAAM,EACNL,OAAO,EACPX,WAAW,EACXe,YAAY,EACZP,aAAa,EACbH,cAAc,CAElB,CAAC;;EAED;AACF;AACA;EACE,MAAMqG,SAAS,GAAG,IAAArF,kBAAW,EAAC,YAA2B;IACvD,IAAI,CAAClB,eAAe,EAAE;MACpB,MAAMR,KAAK,GAAG,IAAI2C,KAAK,CAAC,yBAAyB,CAAC;MAClDvB,YAAY,CAAC;QAAEpB,KAAK,EAAEA,KAAK,CAAC4C;MAAQ,CAAC,CAAC;MACtC5B,OAAO,GAAG;QAAE4B,OAAO,EAAE5C,KAAK,CAAC4C,OAAO;QAAEI,IAAI,EAAE7C,qBAAqB;QAAE8C,MAAM,EAAE;MAAI,CAAC,CAAC;MAC/E,MAAMjD,KAAK;IACb;IAEA,IAAI;MACF,MAAMK,WAAW,CAAC2G,iBAAiB,CAACxG,eAAe,CAAC;MACpD,MAAMI,iBAAiB,CAAC,CAAC;IAC3B,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACd,IAAAoG,8BAAe,EAACpG,KAAK,EAAE;QACrBqG,cAAc,EAAE,mBAAmB;QACnCrD,IAAI,EAAE7C,qBAAqB;QAC3Ba,OAAO;QACPsF,YAAY,EAAGC,GAAW,IAAKnF,YAAY,CAAC;UAAEpB,KAAK,EAAEuG;QAAI,CAAC,CAAC;QAC3DlF;MACF,CAAC,CAAC;MACF,MAAMrB,KAAK,YAAY2C,KAAK,GAAG3C,KAAK,GAAG,IAAI2C,KAAK,CAAC,mBAAmB,CAAC;IACvE;EACF,CAAC,EAAE,CAACnC,eAAe,EAAEI,iBAAiB,EAAES,MAAM,EAAEL,OAAO,EAAEX,WAAW,EAAEe,YAAY,CAAC,CAAC;EAEpF,OAAO;IACL8E,MAAM;IACNM,MAAM;IACNO;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAA7G,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_sessionHelpers","_errorHandlers","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isErrorWithCodeOrStatus","error","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","logger","sessionsRef","useRef","current","performSignIn","useCallback","publicKey","deviceFingerprintObj","DeviceManager","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","isOffline","challengeResponse","requestChallenge","errorMessage","Error","message","String","isNetworkError","includes","code","status","__DEV__","SignatureService","generateChallenge","signature","timestamp","signChallenge","fullUser","sessionResponse","Crypto","Promise","resolve","then","localSessionId","getRandomUUID","localDeviceId","expiresAt","Date","now","toISOString","id","username","privacySettings","sessionId","deviceId","user","offlineSession","lastActive","userId","isCurrent","merge","setItem","verifyChallenge","accessToken","setTokens","refreshToken","getTokenBySession","tokenError","undefined","substring","getUserBySession","allDeviceSessions","fetchSessionsWithFallback","fallbackDeviceId","fallbackUserId","existingSession","find","session","toString","logoutSession","logoutError","filter","signIn","isLoading","handleAuthError","defaultMessage","setAuthError","msg","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","isInvalidSessionError","logoutAll","logoutAllSessions","exports"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,36 @@ var _react = require("react");
|
|
|
23
23
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Module-level guard tracking which (origin + API) signatures have already
|
|
28
|
+
* had a silent SSO attempt this page load.
|
|
29
|
+
*
|
|
30
|
+
* A per-component `useRef` guard resets whenever the provider remounts (route
|
|
31
|
+
* churn, StrictMode double-invoke, error-boundary recovery), which previously
|
|
32
|
+
* allowed silent SSO to re-fire and — combined with a routing redirect loop —
|
|
33
|
+
* produced an accelerating `navigator.credentials.get` retry storm. Keying the
|
|
34
|
+
* guard on a stable signature instead of the component instance makes silent
|
|
35
|
+
* SSO fire EXACTLY ONCE per page load regardless of how many times the
|
|
36
|
+
* provider mounts. The set is intentionally never cleared: a fresh page load
|
|
37
|
+
* (the only thing that can change the answer) starts a fresh module scope.
|
|
38
|
+
*/
|
|
39
|
+
const silentSSOAttempted = new Set();
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Build a stable signature for the silent-SSO run-once guard. Two providers
|
|
43
|
+
* pointed at the same API from the same origin share one attempt.
|
|
44
|
+
*/
|
|
45
|
+
function ssoSignature(oxyServices) {
|
|
46
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'no-origin';
|
|
47
|
+
let baseURL = '';
|
|
48
|
+
try {
|
|
49
|
+
baseURL = oxyServices.getBaseURL?.() ?? '';
|
|
50
|
+
} catch {
|
|
51
|
+
baseURL = '';
|
|
52
|
+
}
|
|
53
|
+
return `${origin}|${baseURL}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
26
56
|
/**
|
|
27
57
|
* Check if we're running in a web browser environment (not React Native)
|
|
28
58
|
*/
|
|
@@ -138,7 +168,14 @@ function useWebSSO({
|
|
|
138
168
|
}
|
|
139
169
|
}, [oxyServices, onSessionFound, onError, fedCMSupported]);
|
|
140
170
|
|
|
141
|
-
// Auto-check SSO on mount (web only, FedCM only, not on auth domain)
|
|
171
|
+
// Auto-check SSO on mount (web only, FedCM only, not on auth domain).
|
|
172
|
+
//
|
|
173
|
+
// Run-once is enforced by TWO guards:
|
|
174
|
+
// 1. `hasCheckedRef` — cheap per-instance fast-path so effect re-runs
|
|
175
|
+
// (from changing deps) within one mount never re-fire.
|
|
176
|
+
// 2. `silentSSOAttempted` — module-level, survives remounts/StrictMode so
|
|
177
|
+
// silent SSO fires exactly once per page load even if the provider
|
|
178
|
+
// unmounts and remounts.
|
|
142
179
|
(0, _react.useEffect)(() => {
|
|
143
180
|
if (!enabled || !isWebBrowser() || hasCheckedRef.current || isIdentityProvider(authWebUrl)) {
|
|
144
181
|
if (isIdentityProvider(authWebUrl)) {
|
|
@@ -146,13 +183,21 @@ function useWebSSO({
|
|
|
146
183
|
}
|
|
147
184
|
return;
|
|
148
185
|
}
|
|
186
|
+
const signature = ssoSignature(oxyServices);
|
|
187
|
+
if (silentSSOAttempted.has(signature)) {
|
|
188
|
+
// Already attempted this page load (e.g. before a remount) — do not
|
|
189
|
+
// re-fire. Mark the local fast-path too so subsequent re-renders skip.
|
|
190
|
+
hasCheckedRef.current = true;
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
149
193
|
hasCheckedRef.current = true;
|
|
194
|
+
silentSSOAttempted.add(signature);
|
|
150
195
|
if (fedCMSupported) {
|
|
151
196
|
checkSSO();
|
|
152
197
|
} else {
|
|
153
198
|
onSSOUnavailable?.();
|
|
154
199
|
}
|
|
155
|
-
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
|
|
200
|
+
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable, oxyServices, authWebUrl]);
|
|
156
201
|
return {
|
|
157
202
|
checkSSO,
|
|
158
203
|
signInWithFedCM,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","silentSSOAttempted","Set","ssoSignature","oxyServices","origin","window","location","baseURL","getBaseURL","isWebBrowser","document","documentElement","isIdentityProvider","authWebUrl","hostname","idpHostname","URL","useWebSSO","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","useRef","hasCheckedRef","fedCMSupported","isFedCMSupported","config","checkSSO","useCallback","current","session","silentSignInWithFedCM","error","Error","String","signInWithFedCM","useEffect","signature","has","add","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -141,16 +141,29 @@ export const useAuthOperations = ({
|
|
|
141
141
|
// Verify and create session
|
|
142
142
|
sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
143
143
|
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
144
|
+
// Plant the first access token. `/auth/verify` already returns the
|
|
145
|
+
// freshly-minted access token in its response body, so use it
|
|
146
|
+
// directly. We must NOT fall back to `GET /session/token/:sessionId`
|
|
147
|
+
// here for a brand-new sign-in: that route is bearer-protected (C1
|
|
148
|
+
// hardening) and the client has no bearer yet, so calling it without
|
|
149
|
+
// a token returns 401 "Invalid or missing authorization header" —
|
|
150
|
+
// which previously broke the entire new-identity onboarding flow.
|
|
151
|
+
// Only when the verify response somehow omits the token do we fall
|
|
152
|
+
// back, and by then `setTokens` has not run so a 401 there is a real
|
|
153
|
+
// server fault worth surfacing.
|
|
154
|
+
if (sessionResponse.accessToken) {
|
|
155
|
+
oxyServices.setTokens(sessionResponse.accessToken, sessionResponse.refreshToken ?? '');
|
|
156
|
+
} else {
|
|
157
|
+
try {
|
|
158
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
159
|
+
} catch (tokenError) {
|
|
160
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
161
|
+
const status = isErrorWithCodeOrStatus(tokenError) ? tokenError.status : undefined;
|
|
162
|
+
if (status === 404 || errorMessage.includes('404')) {
|
|
163
|
+
throw new Error(`Session was created but token could not be retrieved. Session ID: ${sessionResponse.sessionId.substring(0, 8)}...`);
|
|
164
|
+
}
|
|
165
|
+
throw tokenError;
|
|
152
166
|
}
|
|
153
|
-
throw tokenError;
|
|
154
167
|
}
|
|
155
168
|
|
|
156
169
|
// Get full user data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","SignatureService","isErrorWithCodeOrStatus","error","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","logger","sessionsRef","current","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","isOffline","challengeResponse","requestChallenge","errorMessage","Error","message","String","isNetworkError","includes","code","status","__DEV__","generateChallenge","signature","timestamp","signChallenge","fullUser","sessionResponse","Crypto","localSessionId","getRandomUUID","localDeviceId","expiresAt","Date","now","toISOString","id","username","privacySettings","sessionId","deviceId","user","offlineSession","lastActive","userId","isCurrent","merge","setItem","verifyChallenge","getTokenBySession","tokenError","undefined","substring","getUserBySession","allDeviceSessions","fallbackDeviceId","fallbackUserId","existingSession","find","session","toString","logoutSession","logoutError","filter","signIn","isLoading","defaultMessage","setAuthError","msg","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","logoutAll","logoutAllSessions"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","SignatureService","isErrorWithCodeOrStatus","error","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","logger","sessionsRef","current","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","isOffline","challengeResponse","requestChallenge","errorMessage","Error","message","String","isNetworkError","includes","code","status","__DEV__","generateChallenge","signature","timestamp","signChallenge","fullUser","sessionResponse","Crypto","localSessionId","getRandomUUID","localDeviceId","expiresAt","Date","now","toISOString","id","username","privacySettings","sessionId","deviceId","user","offlineSession","lastActive","userId","isCurrent","merge","setItem","verifyChallenge","accessToken","setTokens","refreshToken","getTokenBySession","tokenError","undefined","substring","getUserBySession","allDeviceSessions","fallbackDeviceId","fallbackUserId","existingSession","find","session","toString","logoutSession","logoutError","filter","signIn","isLoading","defaultMessage","setAuthError","msg","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","logoutAll","logoutAllSessions"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,36 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import { useEffect, useRef, useCallback } from 'react';
|
|
21
|
+
/**
|
|
22
|
+
* Module-level guard tracking which (origin + API) signatures have already
|
|
23
|
+
* had a silent SSO attempt this page load.
|
|
24
|
+
*
|
|
25
|
+
* A per-component `useRef` guard resets whenever the provider remounts (route
|
|
26
|
+
* churn, StrictMode double-invoke, error-boundary recovery), which previously
|
|
27
|
+
* allowed silent SSO to re-fire and — combined with a routing redirect loop —
|
|
28
|
+
* produced an accelerating `navigator.credentials.get` retry storm. Keying the
|
|
29
|
+
* guard on a stable signature instead of the component instance makes silent
|
|
30
|
+
* SSO fire EXACTLY ONCE per page load regardless of how many times the
|
|
31
|
+
* provider mounts. The set is intentionally never cleared: a fresh page load
|
|
32
|
+
* (the only thing that can change the answer) starts a fresh module scope.
|
|
33
|
+
*/
|
|
34
|
+
const silentSSOAttempted = new Set();
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Build a stable signature for the silent-SSO run-once guard. Two providers
|
|
38
|
+
* pointed at the same API from the same origin share one attempt.
|
|
39
|
+
*/
|
|
40
|
+
function ssoSignature(oxyServices) {
|
|
41
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'no-origin';
|
|
42
|
+
let baseURL = '';
|
|
43
|
+
try {
|
|
44
|
+
baseURL = oxyServices.getBaseURL?.() ?? '';
|
|
45
|
+
} catch {
|
|
46
|
+
baseURL = '';
|
|
47
|
+
}
|
|
48
|
+
return `${origin}|${baseURL}`;
|
|
49
|
+
}
|
|
50
|
+
|
|
21
51
|
/**
|
|
22
52
|
* Check if we're running in a web browser environment (not React Native)
|
|
23
53
|
*/
|
|
@@ -133,7 +163,14 @@ export function useWebSSO({
|
|
|
133
163
|
}
|
|
134
164
|
}, [oxyServices, onSessionFound, onError, fedCMSupported]);
|
|
135
165
|
|
|
136
|
-
// Auto-check SSO on mount (web only, FedCM only, not on auth domain)
|
|
166
|
+
// Auto-check SSO on mount (web only, FedCM only, not on auth domain).
|
|
167
|
+
//
|
|
168
|
+
// Run-once is enforced by TWO guards:
|
|
169
|
+
// 1. `hasCheckedRef` — cheap per-instance fast-path so effect re-runs
|
|
170
|
+
// (from changing deps) within one mount never re-fire.
|
|
171
|
+
// 2. `silentSSOAttempted` — module-level, survives remounts/StrictMode so
|
|
172
|
+
// silent SSO fires exactly once per page load even if the provider
|
|
173
|
+
// unmounts and remounts.
|
|
137
174
|
useEffect(() => {
|
|
138
175
|
if (!enabled || !isWebBrowser() || hasCheckedRef.current || isIdentityProvider(authWebUrl)) {
|
|
139
176
|
if (isIdentityProvider(authWebUrl)) {
|
|
@@ -141,13 +178,21 @@ export function useWebSSO({
|
|
|
141
178
|
}
|
|
142
179
|
return;
|
|
143
180
|
}
|
|
181
|
+
const signature = ssoSignature(oxyServices);
|
|
182
|
+
if (silentSSOAttempted.has(signature)) {
|
|
183
|
+
// Already attempted this page load (e.g. before a remount) — do not
|
|
184
|
+
// re-fire. Mark the local fast-path too so subsequent re-renders skip.
|
|
185
|
+
hasCheckedRef.current = true;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
144
188
|
hasCheckedRef.current = true;
|
|
189
|
+
silentSSOAttempted.add(signature);
|
|
145
190
|
if (fedCMSupported) {
|
|
146
191
|
checkSSO();
|
|
147
192
|
} else {
|
|
148
193
|
onSSOUnavailable?.();
|
|
149
194
|
}
|
|
150
|
-
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
|
|
195
|
+
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable, oxyServices, authWebUrl]);
|
|
151
196
|
return {
|
|
152
197
|
checkSSO,
|
|
153
198
|
signInWithFedCM,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useCallback","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useCallback","silentSSOAttempted","Set","ssoSignature","oxyServices","origin","window","location","baseURL","getBaseURL","isWebBrowser","document","documentElement","isIdentityProvider","authWebUrl","hostname","idpHostname","URL","useWebSSO","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","hasCheckedRef","fedCMSupported","isFedCMSupported","config","checkSSO","current","session","silentSignInWithFedCM","error","Error","String","signInWithFedCM","signature","has","add","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -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;AAQ/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,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;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,qQAkB/B,wBAAwB,KAAG,
|
|
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;AAQ/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,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;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,qQAkB/B,wBAAwB,KAAG,uBAkU7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAgCD;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CAwHpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -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;AAQ/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,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;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,qQAkB/B,wBAAwB,KAAG,
|
|
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;AAQ/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,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;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,qQAkB/B,wBAAwB,KAAG,uBAkU7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"useWebSSO.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useWebSSO.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5D,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAgCD;;GAEG;AACH,iBAAS,YAAY,IAAI,OAAO,CAI/B;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CAwHpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -189,16 +189,29 @@ export const useAuthOperations = ({
|
|
|
189
189
|
deviceFingerprint,
|
|
190
190
|
);
|
|
191
191
|
|
|
192
|
-
//
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
192
|
+
// Plant the first access token. `/auth/verify` already returns the
|
|
193
|
+
// freshly-minted access token in its response body, so use it
|
|
194
|
+
// directly. We must NOT fall back to `GET /session/token/:sessionId`
|
|
195
|
+
// here for a brand-new sign-in: that route is bearer-protected (C1
|
|
196
|
+
// hardening) and the client has no bearer yet, so calling it without
|
|
197
|
+
// a token returns 401 "Invalid or missing authorization header" —
|
|
198
|
+
// which previously broke the entire new-identity onboarding flow.
|
|
199
|
+
// Only when the verify response somehow omits the token do we fall
|
|
200
|
+
// back, and by then `setTokens` has not run so a 401 there is a real
|
|
201
|
+
// server fault worth surfacing.
|
|
202
|
+
if (sessionResponse.accessToken) {
|
|
203
|
+
oxyServices.setTokens(sessionResponse.accessToken, sessionResponse.refreshToken ?? '');
|
|
204
|
+
} else {
|
|
205
|
+
try {
|
|
206
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
207
|
+
} catch (tokenError: unknown) {
|
|
208
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
209
|
+
const status = isErrorWithCodeOrStatus(tokenError) ? tokenError.status : undefined;
|
|
210
|
+
if (status === 404 || errorMessage.includes('404')) {
|
|
211
|
+
throw new Error(`Session was created but token could not be retrieved. Session ID: ${sessionResponse.sessionId.substring(0, 8)}...`);
|
|
212
|
+
}
|
|
213
|
+
throw tokenError;
|
|
200
214
|
}
|
|
201
|
-
throw tokenError;
|
|
202
215
|
}
|
|
203
216
|
|
|
204
217
|
// Get full user data
|
|
@@ -38,6 +38,36 @@ interface UseWebSSOResult {
|
|
|
38
38
|
isFedCMSupported: boolean;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Module-level guard tracking which (origin + API) signatures have already
|
|
43
|
+
* had a silent SSO attempt this page load.
|
|
44
|
+
*
|
|
45
|
+
* A per-component `useRef` guard resets whenever the provider remounts (route
|
|
46
|
+
* churn, StrictMode double-invoke, error-boundary recovery), which previously
|
|
47
|
+
* allowed silent SSO to re-fire and — combined with a routing redirect loop —
|
|
48
|
+
* produced an accelerating `navigator.credentials.get` retry storm. Keying the
|
|
49
|
+
* guard on a stable signature instead of the component instance makes silent
|
|
50
|
+
* SSO fire EXACTLY ONCE per page load regardless of how many times the
|
|
51
|
+
* provider mounts. The set is intentionally never cleared: a fresh page load
|
|
52
|
+
* (the only thing that can change the answer) starts a fresh module scope.
|
|
53
|
+
*/
|
|
54
|
+
const silentSSOAttempted = new Set<string>();
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Build a stable signature for the silent-SSO run-once guard. Two providers
|
|
58
|
+
* pointed at the same API from the same origin share one attempt.
|
|
59
|
+
*/
|
|
60
|
+
function ssoSignature(oxyServices: OxyServices): string {
|
|
61
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'no-origin';
|
|
62
|
+
let baseURL = '';
|
|
63
|
+
try {
|
|
64
|
+
baseURL = oxyServices.getBaseURL?.() ?? '';
|
|
65
|
+
} catch {
|
|
66
|
+
baseURL = '';
|
|
67
|
+
}
|
|
68
|
+
return `${origin}|${baseURL}`;
|
|
69
|
+
}
|
|
70
|
+
|
|
41
71
|
/**
|
|
42
72
|
* Check if we're running in a web browser environment (not React Native)
|
|
43
73
|
*/
|
|
@@ -163,7 +193,14 @@ export function useWebSSO({
|
|
|
163
193
|
}
|
|
164
194
|
}, [oxyServices, onSessionFound, onError, fedCMSupported]);
|
|
165
195
|
|
|
166
|
-
// Auto-check SSO on mount (web only, FedCM only, not on auth domain)
|
|
196
|
+
// Auto-check SSO on mount (web only, FedCM only, not on auth domain).
|
|
197
|
+
//
|
|
198
|
+
// Run-once is enforced by TWO guards:
|
|
199
|
+
// 1. `hasCheckedRef` — cheap per-instance fast-path so effect re-runs
|
|
200
|
+
// (from changing deps) within one mount never re-fire.
|
|
201
|
+
// 2. `silentSSOAttempted` — module-level, survives remounts/StrictMode so
|
|
202
|
+
// silent SSO fires exactly once per page load even if the provider
|
|
203
|
+
// unmounts and remounts.
|
|
167
204
|
useEffect(() => {
|
|
168
205
|
if (!enabled || !isWebBrowser() || hasCheckedRef.current || isIdentityProvider(authWebUrl)) {
|
|
169
206
|
if (isIdentityProvider(authWebUrl)) {
|
|
@@ -172,14 +209,23 @@ export function useWebSSO({
|
|
|
172
209
|
return;
|
|
173
210
|
}
|
|
174
211
|
|
|
212
|
+
const signature = ssoSignature(oxyServices);
|
|
213
|
+
if (silentSSOAttempted.has(signature)) {
|
|
214
|
+
// Already attempted this page load (e.g. before a remount) — do not
|
|
215
|
+
// re-fire. Mark the local fast-path too so subsequent re-renders skip.
|
|
216
|
+
hasCheckedRef.current = true;
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
|
|
175
220
|
hasCheckedRef.current = true;
|
|
221
|
+
silentSSOAttempted.add(signature);
|
|
176
222
|
|
|
177
223
|
if (fedCMSupported) {
|
|
178
224
|
checkSSO();
|
|
179
225
|
} else {
|
|
180
226
|
onSSOUnavailable?.();
|
|
181
227
|
}
|
|
182
|
-
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
|
|
228
|
+
}, [enabled, checkSSO, fedCMSupported, onSSOUnavailable, oxyServices, authWebUrl]);
|
|
183
229
|
|
|
184
230
|
return {
|
|
185
231
|
checkSSO,
|