برنامه نویسی

حفظ خطای دریافت 401 not Unauthorized هنگام تلاش برای دسترسی به فهرست سوابق با مجوز

Summarize this content to 400 words in Persian Lang // axios.js

«وارد کردن axios از «axios»؛

const api = axios.create({
baseURL: 'http://localhost:5000/api'،
})؛

صادرات const setAuthToken = (token) = >{
اگر (ژتون) {
api.defaults.headers.common[‘x-auth-token’] = نشانه
}دیگر {
api.defaults.headers.common را حذف کنید[‘x-auth-token’];
}
};

صادرات
api پیش فرض؛
**//login.js**
import React،
{
استفاده از ایالت،
useEffect
}
از “واکنش”؛
import api،
{
setAuthToken
}
از '../utils/axios';
وارد کردن AuthForm از '../components/AuthForm';
وارد کردن {
پیمایش کنید
}
از 'react-router-dom';

const ورود = () = >{
پایان[isAuthenticated, setIsAuthenticated] = useState(false);

useEffect(() = >{
const token = localStorage.getItem(‘token’);
if (token) {
setAuthToken(token);
setIsAuthenticated(true);
}
},
[]);

const handleLogin = async(formData) = >{
try {
const res = await api.post(‘/auth/login’, formData);
localStorage.setItem(‘token’, res.data.token);
setAuthToken(res.data.token);
setIsAuthenticated(true);
} catch(err) {
console.error(err.response.data);
}
};

if (isAuthenticated) {
return < Navigate to = “/dashboard” / >;
}

return < AuthForm isLogin = {
true
}
onSubmit = {
handleLogin
}
/>;

};

صادرات پیش فرض ورود؛`
//middleware auth.js

`module.exports = تابع (قیمت، پاسخ، بعدی) {
const token = req.header('x-auth-token');
console.log('Token:', token);
if (!token) return res.status(401).json({msg: 'بدون نشانه، مجوز رد شد' });

try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.user = decoded.user;
next();
} catch (err) {
res.status(401).json({ msg: ‘Token is not valid’ });
}

};
**//server.js**
const express = نیاز ('express')
روتر const = express.Router()
const Record = نیاز ('../models / Records')
const authmiddleware = نیاز ('.. / middleware / auth')

router.get(' / records ',authmiddleware,async(req,res) => {
سعی کن{
const records = await Record.find({userId: req.user._id})
res.json (سوابق)

}
catch(err){
res.status(500).json({error: ‘Ошибкасервера’})
}

})

router.post(' / records ',authmiddleware,async(req,res)=> {
const {date,exercise,weight,reps } = req.body;
سعی کن{
رکورد const = رکورد جدید({
userId: req.user._id،
تاریخ،
ورزش،
وزن،
تکرارها
})
await record.save()
res.status(201).json(record)
}
گرفتن (اشتباه){
res.status(500).json({err: 'خطای سرور'})
}
})
router.delete(' / records: id ',authmiddleware, async(req,res)=> {
سعی کن{
const record = await Record.findOneAndDelete({_id:req.params.id,userId: req.user._id})
if(!record){
return res.status(404).json({error: 'Record found'})
}
res.json({ message:'Record deleted'})

}
catch(err){
res.status(500).json({err: ‘Ошибкасервера’})
}

})
module.exports = روتر`

خیلی چیزها را امتحان کردم، کار نکرد

// axios.js

«وارد کردن axios از «axios»؛

const api = axios.create({
baseURL: 'http://localhost:5000/api'،
})؛

صادرات const setAuthToken = (token) = >{
اگر (ژتون) {
api.defaults.headers.common[‘x-auth-token’] = نشانه
}دیگر {
api.defaults.headers.common را حذف کنید[‘x-auth-token’];
}
};

صادرات
api پیش فرض؛
**//login.js**
import React،
{
استفاده از ایالت،
useEffect
}
از “واکنش”؛
import api،
{
setAuthToken
}
از '../utils/axios';
وارد کردن AuthForm از '../components/AuthForm';
وارد کردن {
پیمایش کنید
}
از 'react-router-dom';

const ورود = () = >{
پایان[isAuthenticated, setIsAuthenticated] = useState(false);

useEffect(() = >{
  const token = localStorage.getItem('token');
  if (token) {
    setAuthToken(token);
    setIsAuthenticated(true);
  }
},
[]);

const handleLogin = async(formData) = >{
  try {
    const res = await api.post('/auth/login', formData);
    localStorage.setItem('token', res.data.token);
    setAuthToken(res.data.token);
    setIsAuthenticated(true);
  } catch(err) {
    console.error(err.response.data);
  }
};

if (isAuthenticated) {
  return < Navigate to = "/dashboard" / >;
}

return < AuthForm isLogin = {
  true
}
onSubmit = {
  handleLogin
}
/>;

};

صادرات پیش فرض ورود؛`
//middleware auth.js

`module.exports = تابع (قیمت، پاسخ، بعدی) {
const token = req.header('x-auth-token');
console.log('Token:', token);
if (!token) return res.status(401).json({msg: 'بدون نشانه، مجوز رد شد' });

try {
  const decoded = jwt.verify(token, process.env.JWT_SECRET);
  req.user = decoded.user;
  next();
} catch (err) {
  res.status(401).json({ msg: 'Token is not valid' });
}

};
**//server.js**
const express = نیاز ('express')
روتر const = express.Router()
const Record = نیاز ('../models / Records')
const authmiddleware = نیاز ('.. / middleware / auth')

router.get(' / records ',authmiddleware,async(req,res) => {
سعی کن{
const records = await Record.find({userId: req.user._id})
res.json (سوابق)

}
catch(err){
    res.status(500).json({error: 'Ошибкасервера'})
}

})

router.post(' / records ',authmiddleware,async(req,res)=> {
const {date,exercise,weight,reps } = req.body;
سعی کن{
رکورد const = رکورد جدید({
userId: req.user._id،
تاریخ،
ورزش،
وزن،
تکرارها
})
await record.save()
res.status(201).json(record)
}
گرفتن (اشتباه){
res.status(500).json({err: 'خطای سرور'})
}
})
router.delete(' / records: id ',authmiddleware, async(req,res)=> {
سعی کن{
const record = await Record.findOneAndDelete({_id:req.params.id,userId: req.user._id})
if(!record){
return res.status(404).json({error: 'Record found'})
}
res.json({ message:'Record deleted'})

}
catch(err){
  res.status(500).json({err: 'Ошибкасервера'})
}

})
module.exports = روتر`

خیلی چیزها را امتحان کردم، کار نکرد

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا