@0xchain/with-login 1.1.0-beta.61 → 1.1.0-beta.63

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAC;AAaf,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAcvB,eAAO,MAAM,OAAO,eAInB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,iBAAiB,oBAAoB;IACrC,aAAa,iBAAiB;CAC/B;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAuCD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,oBAA8C,GAC/C,EAAE,kBAAkB,2CAgHpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,UAAU,cACR,SAAQ,KAAK,CAAC,iBAAiB,EAC7B,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAcvE;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAC;AAYf,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,OAAO,eAInB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,iBAAiB,oBAAoB;IACrC,aAAa,iBAAiB;CAC/B;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAuDD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,oBAA8C,GAC/C,EAAE,kBAAkB,2CA0HpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,UAAU,cACR,SAAQ,KAAK,CAAC,iBAAiB,EAC7B,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAcvE;AAED,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -5,23 +5,15 @@ import { useLocale } from "@0xchain/i18n/react";
5
5
  import { twMerge } from "tailwind-merge";
6
6
  import { useTheme } from "@0xchain/next-themes";
7
7
  import Cookies from "js-cookie";
8
- import { getRuntimeLoginState, setRuntimeSession, REFRESH_TOKEN_COOKIE_KEYS, ACCESS_TOKEN_COOKIE_KEYS } from "@0xchain/auth";
9
- import { ACCESS_TOKEN_COOKIE_KEYS as ACCESS_TOKEN_COOKIE_KEYS2, REFRESH_TOKEN_COOKIE_KEYS as REFRESH_TOKEN_COOKIE_KEYS2, getRuntimeLoginState as getRuntimeLoginState2, setRuntimeSession as setRuntimeSession2 } from "@0xchain/auth";
8
+ import { getRuntimeLoginState, getClientSession, setRuntimeSession } from "@0xchain/auth";
9
+ import { ACCESS_TOKEN_COOKIE_KEYS, REFRESH_TOKEN_COOKIE_KEYS, getRuntimeLoginState as getRuntimeLoginState2, setRuntimeSession as setRuntimeSession2 } from "@0xchain/auth";
10
10
  import { normalizeTokenPayload, setToken } from "@0xchain/token";
11
- function pickCookieValue(keys) {
12
- for (const key of keys) {
13
- const value = Cookies.get(key);
14
- if (value) return value;
15
- }
16
- return null;
17
- }
18
- const hasRefreshToken = () => !!pickCookieValue(REFRESH_TOKEN_COOKIE_KEYS);
19
- const hasAccessToken = () => !!pickCookieValue(ACCESS_TOKEN_COOKIE_KEYS);
20
- const hasAnyToken = () => hasRefreshToken() || hasAccessToken();
11
+ const hasAccessToken = () => getClientSession().hasAccessToken;
12
+ const hasRefreshToken = () => getClientSession().hasRefreshToken;
21
13
  const isLogin = () => {
22
14
  const runtime = getRuntimeLoginState();
23
15
  if (typeof runtime === "boolean") return runtime;
24
- return hasAnyToken();
16
+ return getClientSession().isLoggedIn;
25
17
  };
26
18
  var LoginMessageType = /* @__PURE__ */ ((LoginMessageType2) => {
27
19
  LoginMessageType2["CLOSE_LOGIN_MODAL"] = "closeLoginModal";
@@ -59,6 +51,20 @@ function resolveThemeNow(resolvedTheme) {
59
51
  function buildAuthUrl(locale, path, theme, redirectUri) {
60
52
  return `${process.env.NEXT_PUBLIC_AUTH_URL}/${locale}/${path}?mode=dialog&theme=${theme}&redirect_uri=${encodeURIComponent(redirectUri)}`;
61
53
  }
54
+ function resolveAllowedMessageOrigins() {
55
+ const origins = [];
56
+ if (typeof window !== "undefined" && window.location?.origin) {
57
+ origins.push(window.location.origin);
58
+ }
59
+ const authUrl = process.env.NEXT_PUBLIC_AUTH_URL;
60
+ if (authUrl) {
61
+ try {
62
+ origins.push(new URL(authUrl).origin);
63
+ } catch {
64
+ }
65
+ }
66
+ return Array.from(new Set(origins));
67
+ }
62
68
  function LoginProvider({
63
69
  children,
64
70
  locale: localeProp,
@@ -90,14 +96,21 @@ function LoginProvider({
90
96
  }, []);
91
97
  useEffect(() => {
92
98
  setMounted(true);
99
+ const allowedOrigins = resolveAllowedMessageOrigins();
93
100
  const handleMessage = (event) => {
101
+ if (!allowedOrigins.includes(event.origin)) {
102
+ return;
103
+ }
94
104
  if (event.data?.type === "closeLoginModal") {
95
105
  closeLogin();
96
106
  }
97
107
  if (event.data?.type === "loginSuccess") {
98
108
  const tokens = normalizeTokenPayload(event.data?.data);
99
- if (tokens) {
109
+ const hasCompleteToken = Boolean(tokens?.access_token) && Boolean(tokens?.refresh_token) && typeof tokens?.expires_in === "number";
110
+ if (tokens && hasCompleteToken) {
100
111
  setToken(tokens);
112
+ } else {
113
+ return;
101
114
  }
102
115
  setRuntimeSession({
103
116
  isLoggedIn: true,
@@ -182,11 +195,11 @@ function WithLogin({ children, onClick, ...rest }) {
182
195
  return /* @__PURE__ */ jsx(Trigger, { ...rest, children });
183
196
  }
184
197
  export {
185
- ACCESS_TOKEN_COOKIE_KEYS2 as ACCESS_TOKEN_COOKIE_KEYS,
198
+ ACCESS_TOKEN_COOKIE_KEYS,
186
199
  LoginMessageType,
187
200
  LoginProvider,
188
201
  OpenLoginType,
189
- REFRESH_TOKEN_COOKIE_KEYS2 as REFRESH_TOKEN_COOKIE_KEYS,
202
+ REFRESH_TOKEN_COOKIE_KEYS,
190
203
  WithLogin,
191
204
  WithLogin as default,
192
205
  getRuntimeLoginState2 as getRuntimeLoginState,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xchain/with-login",
3
- "version": "1.1.0-beta.61",
3
+ "version": "1.1.0-beta.63",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -38,9 +38,9 @@
38
38
  "tailwind-merge": "3.3.1"
39
39
  },
40
40
  "dependencies": {
41
- "@0xchain/auth": "1.1.0-beta.61",
42
- "@0xchain/token": "1.1.0-beta.61",
43
- "@0xchain/i18n": "1.1.0-beta.61"
41
+ "@0xchain/token": "1.1.0-beta.63",
42
+ "@0xchain/i18n": "1.1.0-beta.63",
43
+ "@0xchain/auth": "1.1.0-beta.63"
44
44
  },
45
45
  "nx": {
46
46
  "tags": [