حفظ خطای دریافت 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 پیش فرض؛
import React،
**//login.js**
{
استفاده از ایالت،
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' });
}
};
const express = نیاز ('express')
**//server.js**
روتر 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 = روتر`
خیلی چیزها را امتحان کردم، کار نکرد