اذهب إلى المحتوى
  • 0

مشكلة في توجيه المستخدم إلى صفحة تسجيل الدخول في React

محمود سعداوي2

السؤال

السلام عليكم.

في الكود التالي لا يمكنني التوجه إلى صفحة تسجيل الدخول

const user = JSON.parse(localStorage.getItem('user')) || null

useEffect(() => {
    likeImage();
  }, [like]);
  const likeImage = async () => {
     user 
     ? 
     await axios
      .put(`/api/images/like/${imageId}`, {
        headers: {
          "Content-Type": "application/json",
          "x-auth-token": user?.data?.token,
        },
      })
      .then((res) => {
        setLike(res?.data);
      })
      .catch((err) => setError(err.response.data.msg))
      : navigate('/login')
  };
*************************
<div className="like" onClick={likeImage}>
  	<i className="fa-regular fa-thumbs-up"></i>
  	200
</div>

تظهر رسالة الخطأ التالية

PUT http://localhost:3000/api/images/like/65381befd6729f8158b384a9 401 (Unauthorized)

شكرا لكم على المساعدة

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

المشكلة هي أنك لا تتحقق مما إذا كان المستخدم مسجلاً الدخول أم لا قبل محاولة إرسال طلب PUT إلى /api/images/like، وفي حال كان المستخدم غير مسجل الدخول، فستتلقى خطأ 401 (غير مصرح به).

وعليك إضافة شرط إلى دالة likeImage للتحقق مما إذا كان المستخدم مسجلاً الدخول أم لا، وإن لم يكن المستخدم مسجلاً الدخول، فتستطيع توجيهه إلى صفحة تسجيل الدخول.

const user = JSON.parse(localStorage.getItem('user')) || null;

useEffect(() => {
  likeImage();
}, [like]);

const likeImage = async () => {
  if (!user) {
    navigate('/login');
    return;
  }

  await axios
    .put(`/api/images/like/${imageId}`, {
      headers: {
        "Content-Type": "application/json",
        "x-auth-token": user?.data?.token,
      },
    })
    .then((res) => {
      setLike(res?.data);
    })
    .catch((err) => setError(err.response.data.msg));
};

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...