azirid-react 0.9.9 → 0.10.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/dist/index.cjs +69 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +69 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -163,6 +163,31 @@ function createAccessClient(config, appContext) {
|
|
|
163
163
|
let refreshToken = ssGet(storageKeyRt);
|
|
164
164
|
let csrfToken = ssGet(storageKeyCsrf);
|
|
165
165
|
let refreshPromise = null;
|
|
166
|
+
let channel = null;
|
|
167
|
+
try {
|
|
168
|
+
if (typeof BroadcastChannel !== "undefined") {
|
|
169
|
+
channel = new BroadcastChannel("azirid-auth");
|
|
170
|
+
channel.onmessage = (event) => {
|
|
171
|
+
if (event.data?.type === "token-refreshed") {
|
|
172
|
+
accessToken = event.data.accessToken;
|
|
173
|
+
if (event.data.refreshToken) setRefreshToken(event.data.refreshToken);
|
|
174
|
+
if (event.data.csrfToken) setCsrfToken(event.data.csrfToken);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
} catch {
|
|
179
|
+
}
|
|
180
|
+
function broadcastTokens() {
|
|
181
|
+
try {
|
|
182
|
+
channel?.postMessage({
|
|
183
|
+
type: "token-refreshed",
|
|
184
|
+
accessToken,
|
|
185
|
+
refreshToken,
|
|
186
|
+
csrfToken
|
|
187
|
+
});
|
|
188
|
+
} catch {
|
|
189
|
+
}
|
|
190
|
+
}
|
|
166
191
|
function setAccessToken(token) {
|
|
167
192
|
accessToken = token;
|
|
168
193
|
}
|
|
@@ -224,6 +249,7 @@ function createAccessClient(config, appContext) {
|
|
|
224
249
|
const xc = json.xc ?? json.csrfToken;
|
|
225
250
|
if (rt) setRefreshToken(rt);
|
|
226
251
|
if (xc) setCsrfToken(xc);
|
|
252
|
+
broadcastTokens();
|
|
227
253
|
}
|
|
228
254
|
function refreshTokens(opts) {
|
|
229
255
|
if (opts?.tenantId) {
|
|
@@ -773,6 +799,27 @@ function AziridProviderInner({
|
|
|
773
799
|
}, [client, props.autoBootstrap, updateAccessToken, saveSessionTokens]);
|
|
774
800
|
const silentRefresh = useCallback(async () => {
|
|
775
801
|
if (!client.getAccessToken()) return;
|
|
802
|
+
if (typeof navigator !== "undefined" && "locks" in navigator) {
|
|
803
|
+
let acquired = false;
|
|
804
|
+
try {
|
|
805
|
+
await navigator.locks.request(
|
|
806
|
+
"azirid-token-refresh",
|
|
807
|
+
{ ifAvailable: true },
|
|
808
|
+
async (lock) => {
|
|
809
|
+
if (!lock) return;
|
|
810
|
+
acquired = true;
|
|
811
|
+
await client.refreshSession();
|
|
812
|
+
updateAccessToken(client.getAccessToken());
|
|
813
|
+
}
|
|
814
|
+
);
|
|
815
|
+
} catch (err) {
|
|
816
|
+
if (acquired && isAuthError(err)) {
|
|
817
|
+
clearSession();
|
|
818
|
+
props.onSessionExpired?.();
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
return;
|
|
822
|
+
}
|
|
776
823
|
try {
|
|
777
824
|
await client.refreshSession();
|
|
778
825
|
updateAccessToken(client.getAccessToken());
|
|
@@ -783,6 +830,27 @@ function AziridProviderInner({
|
|
|
783
830
|
}
|
|
784
831
|
}
|
|
785
832
|
}, [client, updateAccessToken, clearSession, props]);
|
|
833
|
+
useEffect(() => {
|
|
834
|
+
let channel = null;
|
|
835
|
+
try {
|
|
836
|
+
if (typeof BroadcastChannel !== "undefined") {
|
|
837
|
+
channel = new BroadcastChannel("azirid-auth");
|
|
838
|
+
channel.onmessage = (event) => {
|
|
839
|
+
if (event.data?.type === "token-refreshed" && event.data.accessToken) {
|
|
840
|
+
client.setAccessToken(event.data.accessToken);
|
|
841
|
+
updateAccessToken(event.data.accessToken);
|
|
842
|
+
}
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
} catch {
|
|
846
|
+
}
|
|
847
|
+
return () => {
|
|
848
|
+
try {
|
|
849
|
+
channel?.close();
|
|
850
|
+
} catch {
|
|
851
|
+
}
|
|
852
|
+
};
|
|
853
|
+
}, [client, updateAccessToken]);
|
|
786
854
|
useEffect(() => {
|
|
787
855
|
const intervalMs = props.refreshInterval ?? 5e4;
|
|
788
856
|
if (intervalMs <= 0) return;
|
|
@@ -4273,7 +4341,7 @@ function usePasswordToggle() {
|
|
|
4273
4341
|
}
|
|
4274
4342
|
|
|
4275
4343
|
// src/index.ts
|
|
4276
|
-
var SDK_VERSION = "0.
|
|
4344
|
+
var SDK_VERSION = "0.10.0";
|
|
4277
4345
|
|
|
4278
4346
|
export { AuthForm, AziridProvider, BASE_PATHS, CheckoutButton, ForgotPasswordForm, InvoiceList, LoginForm, PATHS, PayButton, PayphoneCallback, PayphoneWidgetRenderer, PricingTable, ReferralCard, ReferralStats, ResetPasswordForm, SDK_VERSION, SignupForm, SubscriptionBadge, buildPaths, changePasswordSchema, cn, createAccessClient, createForgotPasswordSchema, createLoginSchema, createMutationHook, createResetPasswordConfirmSchema, createSignupSchema, en, es, forgotPasswordSchema, isAuthError, loginSchema, magicLinkRequestSchema, magicLinkVerifySchema, passkeyRegisterStartSchema, removeStyles, resetPasswordConfirmSchema, resolveMessages, signupSchema, socialLoginSchema, useAccessClient, useAzirid, useBootstrap, useBranding, useChangePassword, useCheckout, useFormState, useInvoices, useLogin, useLogout, useMagicLink, useMessages, usePasskeys, usePasswordReset, usePasswordToggle, usePayButton, usePaymentProviders, usePayphoneCheckout, usePayphoneConfirm, usePlans, useReferral, useReferralStats, useRefresh, useSession, useSignup, useSocialLogin, useSubmitTransferProof, useSubscription, useSwitchTenant, useTenantMembers, useTenants, useTransferPayment, useTransferProofs };
|
|
4279
4347
|
//# sourceMappingURL=index.js.map
|