سلام استاد, تا دو سه ماه پیش همچین خطایی نمی دیدم ولی بتازگی سمت بک اند این خطا رو می ده.
سلام وقت بخیر
احتمالا توی تابع یا میدل وری که تعریف کردید مقدار req رو اشتباه نوشتید و ...
و شاید توی فایل های ejs و صفحات , شرطی گذاشتید که نیازمند بررسی احراز هویت کاربر بوده
مثلreq.isAuthenticated() , و یا req,user و فراموش کردید req رو ارسال کنید
من پروژه پایانی دوره قبلی ری اکت استاد رو (که شبیه تاپلرن بود) رو بهمراه بک اندش که خودشون داده بودن رو کنار هم گذاشتم و اجرا کردم البته بروزرسانی های زیادی داشت که انجام دادم و همین دو سه ماه پیش مشکلی نداشت ولی چند روز پیش که دوباره امتحان کردم نمیشد. البته از طریق postman و توکن که از لاگین میگیرم می تونم با بک اند و مونگودی بی ارتباط برقرار کنم و اطلاعاتی رو که بخوام می تونم تو دیتابیس ایجاد کنم ولی از طریق ری اکت نمیشه که البته یک middleware بنام isAuth را اگر از سر راه بردارم بوسیله ری اکت هم میشه ولی اینطوری دیگه احراز هویت معنی نداره. موقع تست کردن با postman این middleware وجود داره. این طوری به نظر میرسه که فقط موقع ارتباط ری اکت با نود جی اس وقتی که این middleware سر راه باشه app دچار مشکل میشه که من هم هیچ تغییری هم در middleware ندادم. middleware هم به صورت زیر هست:
const jwt = require('jsonwebtoken');
exports.isAuth = (req, res, next) => {
const authHeader = req.get('Authorization');
if (!authHeader) {
const error = new Error('Not authenticated.');
error.statusCode = 401;
throw error;
}
const token = authHeader.split(' ')[1];
let decodedToken;
try {
decodedToken = jwt.verify(token, 'secret');
} catch (err) {
err.statusCode = 500;
throw err;
}
if (!decodedToken) {
const error = new Error('Not authenticated.');
error.statusCode = 401;
throw error;
}
req.userId = decodedToken.userId;
next();
};
من هم همون پروژه تاپلرن رو پیاده سازی کردم
مشکل از کدهای این قسمت و کدهای سمت سرور نیست
و احتمالا مشکل از پیاده سازی توی فرانت پروژتون هست چون با postman امتحان کردید و مشکلی نداشته
اگه مشکلی بود توی همون postman هم قاعدتا جوابی نمیداد و....
من هم به همین نتیجه رسیدم که اشکال از سمت سرور نیست ولی کد های سمت فرانت هم همون کد های استاد هست و تغییری توش ندادم و کار میکرد تا دو ماه پیش. بخاطر همین برام عجیبه که دارم سوال میپرسم گفتم شاید یه بروز رسانی بوده تو ری اکت و من بی خبرم. یا شاید یه اشکالی تو مرور گر باشه. تو موزیلا بالا نمیاد تو کروم فقط کار میکنه که اونم این مشکل هستش. نمی دونم. ممنون از پاسخگویی تون.
خواهش میکنم
اره ریکت تغییراتی داشته
مگر اینکه پکیج هارو به نسخه اخر تغییر داده باشی
کدهایی ک استاد نوشته ورژن قدیمی تر هست
و یه سری چیزا تغییر کرده توی ورژن جدید
سلام دوستان عزیز
سعی کن وابستگی های پروژه ری اکت رو بروزرسانی نکنی
شاید هشدار امنیتی بده که با audit درستش کنی که اکثرا خراب میکنه
انشاالله در این بروزرسانی ری اکت با مباحث جدید و تغییراتش آشنا میشیم