next-auth-mfelfelani72 0.0.22 → 0.0.23

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,28 +1,10 @@
1
1
  import { NextRequest, NextResponse } from "next/server";
2
2
  export declare function loginHandler(apiUrl: string): (req: NextRequest) => Promise<NextResponse<{
3
- message: string;
4
3
  success: boolean;
5
- debug: {
6
- url: string;
7
- responsePreview: string;
8
- };
9
- }> | NextResponse<{
10
- message: string;
11
- success: boolean;
12
- user: any;
13
- }> | NextResponse<{
14
4
  message: any;
15
- success: boolean;
16
- debug: {
17
- status: number;
18
- responseData: any;
19
- };
5
+ error: any;
20
6
  }> | NextResponse<{
21
- message: any;
22
7
  success: boolean;
23
- debug: {
24
- errorName: any;
25
- errorMessage: any;
26
- stack: any;
27
- };
8
+ message: string;
9
+ user: any;
28
10
  }>>;
@@ -1,61 +1,10 @@
1
1
  // src/libraries/auth/loginHandler.ts
2
2
  import { NextResponse } from "next/server";
3
- import fs from 'fs';
4
- import path from 'path';
5
3
  export function loginHandler(apiUrl) {
6
4
  return async function POST(req) {
7
- var _a, _b, _c, _d, _e, _f, _g, _h;
8
- // ============================================
9
- // تنظیمات لاگ
10
- // ============================================
11
- const LOG_DIR = path.join(process.cwd(), 'logs');
12
- const LOG_FILE = path.join(LOG_DIR, 'auth-debug.log');
13
- // ایجاد پوشه logs اگر وجود ندارد
14
- if (!fs.existsSync(LOG_DIR)) {
15
- fs.mkdirSync(LOG_DIR, { recursive: true });
16
- }
17
- // تابع لاگ‌نویسی
18
- const log = (message, data) => {
19
- const timestamp = new Date().toISOString();
20
- const logLine = data
21
- ? `[${timestamp}] ${message}\n${JSON.stringify(data, null, 2)}\n`
22
- : `[${timestamp}] ${message}\n`;
23
- // لاگ در ترمینال
24
- console.log(`🔐 ${message}`);
25
- // لاگ در فایل
26
- try {
27
- fs.appendFileSync(LOG_FILE, logLine);
28
- }
29
- catch (err) {
30
- console.error('Failed to write log file:', err);
31
- }
32
- };
33
- // ============================================
34
- // شروع لاگین
35
- // ============================================
36
- log('═══════════════════════════════════════════════════════');
37
- log('🔐 LOGIN HANDLER STARTED');
38
- log(`🕐 Time: ${new Date().toLocaleString('fa-IR')}`);
39
- log(`📂 Log file: ${LOG_FILE}`);
40
- log('═══════════════════════════════════════════════════════');
5
+ var _a, _b;
41
6
  try {
42
- // ============================================
43
- // 1. لاگ کردن اطلاعات درخواست
44
- // ============================================
45
- log('📋 REQUEST INFO:');
46
- log(` - Method: ${req.method}`);
47
- log(` - URL: ${req.url}`);
48
- log(` - Headers:`, Object.fromEntries(req.headers));
49
- // ============================================
50
- // 2. لاگ کردن Body
51
- // ============================================
52
7
  const body = await req.json();
53
- log('📦 REQUEST BODY:', Object.assign(Object.assign({}, body), { password: body.password ? '***' : undefined }));
54
- // ============================================
55
- // 3. ارسال درخواست به API
56
- // ============================================
57
- log(`🚀 SENDING REQUEST TO: ${apiUrl}`);
58
- const startTime = Date.now();
59
8
  const response = await fetch(apiUrl, {
60
9
  method: "POST",
61
10
  headers: {
@@ -64,145 +13,52 @@ export function loginHandler(apiUrl) {
64
13
  },
65
14
  body: JSON.stringify(body),
66
15
  });
67
- const endTime = Date.now();
68
- log(`⏱️ Request took: ${endTime - startTime}ms`);
69
- // ============================================
70
- // 4. لاگ کردن پاسخ
71
- // ============================================
72
- log('📥 RESPONSE:');
73
- log(` - Status: ${response.status} ${response.statusText}`);
74
- log(` - Headers:`, Object.fromEntries(response.headers));
75
- // ============================================
76
- // 5. خواندن پاسخ
77
- // ============================================
78
16
  const responseText = await response.text();
79
- log(`📝 RESPONSE TEXT (first 1000 chars):`, responseText.substring(0, 1000));
80
- // ============================================
81
- // 6. بررسی اینکه پاسخ HTML است یا JSON
82
- // ============================================
83
- const contentType = response.headers.get("content-type");
84
- log(`📄 Content-Type: ${contentType}`);
85
- // اگر پاسخ HTML بود
86
- if (responseText.trim().startsWith('<!DOCTYPE') ||
87
- responseText.trim().startsWith('<html') ||
88
- responseText.trim().startsWith('<!DOCTYPE html')) {
89
- log('❌❌❌ HTML RESPONSE DETECTED ❌❌❌');
90
- log(' - This usually means the API URL is wrong');
91
- log(` - URL: ${apiUrl}`);
92
- log(` - Status: ${response.status}`);
93
- log(` - Response preview:`, responseText.substring(0, 500));
17
+ // ==== اینجا خطا رو برمی‌گردونیم ====
18
+ if (responseText.startsWith('<!DOCTYPE') || responseText.startsWith('<html')) {
94
19
  return NextResponse.json({
95
- message: `API returned HTML instead of JSON. Please check the URL: ${apiUrl}`,
96
20
  success: false,
97
- debug: {
21
+ message: 'API returned HTML instead of JSON',
22
+ error: {
98
23
  url: apiUrl,
99
24
  status: response.status,
100
- statusText: response.statusText,
101
- contentType: contentType,
102
- responsePreview: responseText.substring(0, 300),
25
+ htmlPreview: responseText.substring(0, 200),
103
26
  }
104
27
  }, { status: 500 });
105
28
  }
106
- // ============================================
107
- // 7. Parse کردن JSON
108
- // ============================================
109
- let data;
110
- try {
111
- data = JSON.parse(responseText);
112
- log('✅ JSON PARSED SUCCESSFULLY');
113
- log('📊 PARSED DATA:', Object.assign(Object.assign({}, data), { data: data.data ? Object.assign(Object.assign({}, data.data), { token: data.data.token ? Object.assign(Object.assign({}, data.data.token), { access_token: data.data.token.access_token ? '***' : undefined }) : undefined }) : undefined }));
114
- }
115
- catch (parseError) {
116
- log('❌ JSON PARSE ERROR:', {
117
- error: parseError.message,
118
- responseText: responseText.substring(0, 500),
119
- });
29
+ const data = JSON.parse(responseText);
30
+ if (!data.success || !((_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.token) === null || _b === void 0 ? void 0 : _b.access_token)) {
120
31
  return NextResponse.json({
121
- message: `Failed to parse JSON response: ${parseError.message}`,
122
32
  success: false,
123
- debug: {
124
- url: apiUrl,
125
- responsePreview: responseText.substring(0, 300),
126
- }
127
- }, { status: 500 });
33
+ message: data.message || 'Login failed',
34
+ error: data,
35
+ }, { status: 401 });
128
36
  }
129
- // ============================================
130
- // 8. بررسی ساختار داده
131
- // ============================================
132
- log('🔍 DATA STRUCTURE CHECK:');
133
- log(` - success: ${data.success !== undefined ? data.success : 'undefined'}`);
134
- log(` - data: ${data.data !== undefined ? 'present' : 'undefined'}`);
135
- log(` - data.token: ${((_a = data.data) === null || _a === void 0 ? void 0 : _a.token) !== undefined ? 'present' : 'undefined'}`);
136
- log(` - data.token.access_token: ${((_c = (_b = data.data) === null || _b === void 0 ? void 0 : _b.token) === null || _c === void 0 ? void 0 : _c.access_token) !== undefined ? 'present' : 'undefined'}`);
137
- log(` - data.user: ${((_d = data.data) === null || _d === void 0 ? void 0 : _d.user) !== undefined ? 'present' : 'undefined'}`);
138
- // ============================================
139
- // 9. پردازش موفقیت‌آمیز
140
- // ============================================
141
- if (data.success && ((_f = (_e = data.data) === null || _e === void 0 ? void 0 : _e.token) === null || _f === void 0 ? void 0 : _f.access_token)) {
142
- log('✅✅✅ LOGIN SUCCESSFUL ✅✅✅');
143
- log(`👤 User:`, {
144
- email: ((_g = data.data.user) === null || _g === void 0 ? void 0 : _g.email) || 'unknown',
145
- id: ((_h = data.data.user) === null || _h === void 0 ? void 0 : _h.id) || 'unknown',
146
- });
147
- const res = NextResponse.json({
148
- message: "Login successful",
149
- success: true,
150
- user: data.data.user,
151
- });
152
- const cookieOptions = {
153
- secure: process.env.NODE_ENV === "production",
154
- sameSite: "strict",
155
- path: "/",
156
- maxAge: 60 * 60 * 24 * 7,
157
- };
158
- log('🍪 SETTING COOKIES:');
159
- // accessToken
160
- res.cookies.set(Object.assign(Object.assign({ name: "accessToken", value: data.data.token.access_token }, cookieOptions), { httpOnly: true }));
161
- log(' - accessToken: set');
162
- // tokenType
163
- res.cookies.set(Object.assign(Object.assign({ name: "tokenType", value: data.data.token.token_type || "Bearer" }, cookieOptions), { httpOnly: true }));
164
- log(' - tokenType: set');
165
- // user
166
- res.cookies.set(Object.assign(Object.assign({ name: "user", value: JSON.stringify(data.data.user) }, cookieOptions), { httpOnly: false }));
167
- log(' - user: set');
168
- // isLoggedIn
169
- res.cookies.set(Object.assign(Object.assign({ name: "isLoggedIn", value: "true" }, cookieOptions), { httpOnly: false }));
170
- log(' - isLoggedIn: set');
171
- log('═══════════════════════════════════════════════════════');
172
- log('✅ LOGIN COMPLETED SUCCESSFULLY');
173
- log('═══════════════════════════════════════════════════════');
174
- return res;
175
- }
176
- // ============================================
177
- // 10. لاگین ناموفق
178
- // ============================================
179
- log('❌ LOGIN FAILED');
180
- log(` - Message: ${data.message || 'Unknown error'}`);
181
- log(` - Data:`, data);
182
- return NextResponse.json({
183
- message: data.message || "Login failed",
184
- success: false,
185
- debug: {
186
- status: response.status,
187
- responseData: data,
188
- }
189
- }, { status: response.status || 401 });
37
+ // موفقیت
38
+ const res = NextResponse.json({
39
+ success: true,
40
+ message: "Login successful",
41
+ user: data.data.user,
42
+ });
43
+ res.cookies.set({
44
+ name: "accessToken",
45
+ value: data.data.token.access_token,
46
+ httpOnly: true,
47
+ secure: process.env.NODE_ENV === "production",
48
+ sameSite: "strict",
49
+ path: "/",
50
+ maxAge: 60 * 60 * 24 * 7,
51
+ });
52
+ return res;
190
53
  }
191
54
  catch (err) {
192
- // ============================================
193
- // 11. خطای کلی
194
- // ============================================
195
- log('❌❌❌ CATCH BLOCK ERROR ❌❌❌');
196
- log(` - Error name: ${err.name}`);
197
- log(` - Error message: ${err.message}`);
198
- log(` - Error stack:`, err.stack);
199
- log('═══════════════════════════════════════════════════════');
55
+ // ==== هر خطای دیگه ====
200
56
  return NextResponse.json({
201
- message: err.message || "Internal server error",
202
57
  success: false,
203
- debug: {
204
- errorName: err.name,
205
- errorMessage: err.message,
58
+ message: err.message || 'Internal server error',
59
+ error: {
60
+ name: err.name,
61
+ message: err.message,
206
62
  stack: err.stack,
207
63
  }
208
64
  }, { status: 500 });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-auth-mfelfelani72",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [