@akinon/next 1.25.0-rc.2 → 1.25.0-rc.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @akinon/next
2
2
 
3
+ ## 1.25.0-rc.3
4
+
5
+ ### Minor Changes
6
+
7
+ - 1289982: ZERO-2521: Add x-forwarded-for header to requests
8
+
9
+ ### Patch Changes
10
+
11
+ - @akinon/eslint-plugin-projectzero@1.25.0-rc.3
12
+
3
13
  ## 1.25.0-rc.2
4
14
 
5
15
  ### Minor Changes
package/api/auth.ts CHANGED
@@ -80,14 +80,21 @@ const nextAuthOptions = (req: NextApiRequest, res: NextApiResponse) => {
80
80
  const language = Settings.localization.locales.find(
81
81
  (item) => item.value === credentials.locale
82
82
  ).apiValue;
83
+ const userIp = req.headers['x-forwarded-for']?.toString() ?? '';
83
84
 
84
85
  headers.set('Content-Type', 'application/json');
85
86
  headers.set('cookie', `${req.headers.cookie}`);
86
87
  headers.set('Accept-Language', `${language}`);
87
88
  headers.set('x-currency', req.cookies['pz-currency'] ?? '');
89
+ headers.set('x-forwarded-for', userIp);
90
+ headers.set(
91
+ 'x-app-device',
92
+ req.headers['x-app-device']?.toString() ?? ''
93
+ );
88
94
 
89
95
  logger.debug('Trying to login/register', {
90
- formType: credentials.formType
96
+ formType: credentials.formType,
97
+ userIp
91
98
  });
92
99
 
93
100
  const apiRequest = await fetch(
@@ -99,7 +106,9 @@ const nextAuthOptions = (req: NextApiRequest, res: NextApiResponse) => {
99
106
  }
100
107
  );
101
108
 
102
- logger.info(`Login/Register request result: ${apiRequest.status}`);
109
+ logger.info(`Login/Register request result: ${apiRequest.status}`, {
110
+ userIp
111
+ });
103
112
 
104
113
  const response = (await apiRequest.json()) as {
105
114
  key: string;
package/api/client.ts CHANGED
@@ -51,7 +51,6 @@ async function proxyRequest(...args) {
51
51
 
52
52
  [
53
53
  'x-forwarded-host',
54
- 'x-forwarded-for',
55
54
  'x-forwarded-proto',
56
55
  'x-forwarded-port',
57
56
  'x-requested-with',
@@ -43,7 +43,8 @@ const withCompleteGpay =
43
43
  'X-Requested-With': 'XMLHttpRequest',
44
44
  'Content-Type': 'application/x-www-form-urlencoded',
45
45
  Cookie: `osessionid=${req.cookies.get('osessionid')?.value ?? ''}`,
46
- 'x-currency': req.cookies.get('pz-currency')?.value ?? ''
46
+ 'x-currency': req.cookies.get('pz-currency')?.value ?? '',
47
+ 'x-forwarded-for': ip
47
48
  };
48
49
 
49
50
  try {
@@ -43,7 +43,8 @@ const withCompleteMasterpass =
43
43
  'X-Requested-With': 'XMLHttpRequest',
44
44
  'Content-Type': 'application/x-www-form-urlencoded',
45
45
  Cookie: `osessionid=${req.cookies.get('osessionid')?.value ?? ''}`,
46
- 'x-currency': req.cookies.get('pz-currency')?.value ?? ''
46
+ 'x-currency': req.cookies.get('pz-currency')?.value ?? '',
47
+ 'x-forwarded-for': ip
47
48
  };
48
49
 
49
50
  try {
@@ -139,7 +139,8 @@ const withPzDefault =
139
139
  Cookie: req.headers.get('cookie') || '',
140
140
  Accept: 'application/json',
141
141
  'Content-Type': 'application/json',
142
- 'X-Requested-With': 'XMLHttpRequest'
142
+ 'X-Requested-With': 'XMLHttpRequest',
143
+ 'x-forwarded-for': ip
143
144
  }
144
145
  }
145
146
  );
@@ -15,11 +15,13 @@ const withOauthLogin =
15
15
  const loginCallbackUrlMatcherRegex = new RegExp(
16
16
  /^\/(\w+)\/login\/callback\/?$/
17
17
  );
18
+ const ip = req.headers.get('x-forwarded-for') ?? '';
18
19
 
19
20
  const headers = {
20
21
  'x-forwarded-host':
21
22
  req.headers.get('x-forwarded-host') || req.headers.get('host') || '',
22
- 'x-currency': req.cookies.get('pz-currency')?.value ?? ''
23
+ 'x-currency': req.cookies.get('pz-currency')?.value ?? '',
24
+ 'x-forwarded-for': ip
23
25
  };
24
26
 
25
27
  if (loginUrlMatcherRegex.test(url.pathname)) {
@@ -44,7 +44,9 @@ const withRedirectionPayment =
44
44
  'X-Requested-With': 'XMLHttpRequest',
45
45
  'Content-Type': 'application/x-www-form-urlencoded',
46
46
  Cookie: req.headers.get('cookie') ?? '',
47
- 'x-currency': req.cookies.get('pz-currency')?.value ?? ''
47
+ 'x-currency': req.cookies.get('pz-currency')?.value ?? '',
48
+ 'x-forwarded-for': ip
49
+
48
50
  };
49
51
 
50
52
  try {
@@ -43,7 +43,8 @@ const withThreeDRedirection =
43
43
  'X-Requested-With': 'XMLHttpRequest',
44
44
  'Content-Type': 'application/x-www-form-urlencoded',
45
45
  Cookie: `osessionid=${req.cookies.get('osessionid')?.value ?? ''}`,
46
- 'x-currency': req.cookies.get('pz-currency')?.value ?? ''
46
+ 'x-currency': req.cookies.get('pz-currency')?.value ?? '',
47
+ 'x-forwarded-for': ip
47
48
  };
48
49
 
49
50
  try {
@@ -31,6 +31,9 @@ const withUrlRedirection =
31
31
  const request = await fetch(
32
32
  `${settings.commerceUrl}${pathnameWithoutLocale}${url.search}`,
33
33
  {
34
+ headers: {
35
+ 'x-forwarded-for': ip
36
+ },
34
37
  redirect: 'manual',
35
38
  next: {
36
39
  revalidate: 0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@akinon/next",
3
3
  "description": "Core package for Project Zero Next",
4
- "version": "1.25.0-rc.2",
4
+ "version": "1.25.0-rc.3",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "bin": {
@@ -36,7 +36,8 @@ const appFetch = async <T>(
36
36
  init.headers = {
37
37
  ...(init.headers ?? {}),
38
38
  'Accept-Language': currentLocale.apiValue,
39
- 'x-currency': ServerVariables.currency
39
+ 'x-currency': ServerVariables.currency,
40
+ 'x-forwarded-for': ip
40
41
  };
41
42
 
42
43
  init.next = {