-
المساهمات
604 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمود سعداوي2
-
السلام عليكم. هل يمكن إستعمال أدوات لم يقع التطرق إليها في الدورة كredux أو tailwind (للذكر لا للحصر) شكرا
- 1 جواب
-
- 1
-
السلام عليكم. أواجه مشكل في إرسال البيانات إلى الخادم الكود const handleSubmit = (e) => { e.preventDefault() axios .post("http://127.0.0.1:8000/api/users/register", formData) .then((res) => console.log(res.data)) .catch((err) => console.log(err)); } package.json "proxy": "http://127.0.0.1:8000" رسالة الخطأ Access to XMLHttpRequest at 'http://127.0.0.1:8000/api/users/register' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. AxiosError {message: 'Network Error', name: 'AxiosError', code: 'ERR_NETWORK', config: {…}, request: XMLHttpRequest, …} شكرا على المساعدة
- 1 جواب
-
- 1
-
السلام عليكم. قد ننسي أحيانا كلمة المرور لحساب معين بسبب من الأسباب. كذلك الشأن لmongo db atlas. لذلك كيف يمكن تغيير كلمة المرور لقاعدة بيانات محددة. شكرا.
- 1 جواب
-
- 1
-
السلام عليكم. أيهما أفضل: إستعمال multer أم express-uploder في مشاريع react node js. شكرا لكم.
- 2 اجابة
-
- 1
-
السلام عليكم. أريد تغيير لملف الشخصي لمستخدم معين قمت بالكود التالي function EditProfile(props) { const { editProfile, handleEditProfile, user, setCurrentUser } = props const [avatar, setAvatar] = useState("") const [image, setImage] = useState("") const [name, setName] = useState("") const [about, setAbout] = useState("") const [error, setError] = useState("") const fileUpload = useRef(null) const showFileUpload = () => { fileUpload.current.click() } const onImageChange = (event) => { if (event.target.files && event.target.files[0]) { setImage(URL.createObjectURL(event.target.files[0])); setAvatar(event.target.files[0]); } }; const handleSubmit = (e) => { e.preventDefault() const user = JSON.parse(localStorage.getItem("user")); const formData = new FormData() formData.append('name', name) formData.append('about', about) if (avatar) { formData.append('avatar', avatar, avatar.name) } axios .post("/api/auth/profile", formData, { headers: { "Content-Type": "application/json", "x-auth-token": user.data?.token, }, }) .then((res) => { console.log("msg: ", res) // setCurrentUser(res.data.data) }) .catch((error) => setError(error.response.data.msg)); } return ( <div className={editProfile ? "side-profile open" : "side-profile"}> <Row className="heading"> <div className="mr-2 nav-link" onClick={handleEditProfile}> <i className="fa fa-arrow-right" /> </div> <div>الملف الشخصي</div> </Row> <div className="edit_profile d-flex flex-column"> <Form onSubmit={handleSubmit} encType="multipart/form-data" > <Error error={error} /> <div className="text-center" onClick={showFileUpload} > <Avatar src={user?.avatar} file={image} /> </div> <input type="file" className="d-none" accept="image/*" name='image' onChange={onImageChange} ref={fileUpload} // value={image} /> <div className="bg-white px-4 py-2"> <label className="text-muted">الاسم</label> <Input value={name} name="name" onChange={(e)=> setName(e.target.value)} required autoComplete="off" /> </div> <div className="bg-white px-3 py-2"> <label className="text-muted">رسالة الحالة</label> <Input value={about} name="about" onChange={(e)=> setAbout(e.target.value)} required autoComplete="off" /> </div> <div className="bg-white px-3 py-2"> <Button block className="mt-3"> حفظ </Button> </div> </Form> </div> </div> ); } في طرف العميل قمت بالكود التالي const upload = multer({ storage: storage }); router.post('/profile', [upload.single("avatar"), protect], updateProfile) المشكل هو عند إرسال البيانات (handleSubmit) تظهر رسالة الخطأ التالية react-dom.development.js:14887 Uncaught Error: Objects are not valid as a React child (found: object with keys {errors, _message, name, message}). If you meant to render a collection of children, use an array instead. at throwOnInvalidObjectType (react-dom.development.js:14887:1) شكرا على المساعدة
-
المشكل هنا يجب أن يتحول الكود كالآتي res.status(200).json({ success: true, data: current_user }); أجبت بعد أن وجدت الحل لتعم المنفعة الجميع.
-
السلام عليكم. أريد تغيير كلمة المرور بالمستخدم الحالي. قمت بالكود التالي في طرف الخادم // Change Password const changePassword = async(req,res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({errors: errors.array()}) } try { const { password, newPassword } = req.body; const id = new mongoose.Types.ObjectId(req.user); const current_user = await User.findOne({ _id: id }); // Check if password is wrong then create error. const matchPassword = await bcrypt.compare( password, current_user.password ); if (!matchPassword) { return res.status(401).send({msg: "كلمة المرور خاطئة"}) } // Update password. const salt = await bcrypt.genSalt(10); const hashNewPassword = await bcrypt.hash(newPassword, salt) current_user.password = hashNewPassword; await current_user.save() res.send(res.json({ success: true, data: current_user })) } catch (error) { res.status(500).send({msg: error.message}); } } في طرف العميل const navigate = useNavigate() const [error, setError] = useState('') const [changePassward, setChangePassward] = useState({ password: '', newPassword: '' }) const { password, newPassword } = changePassward const onChange = (e) => { setChangePassward({...changePassward, [e.target.name]: e.target.value}) } const onSubmit = (e) => { e.preventDefault(); const user = JSON.parse(localStorage.getItem("user")); // console.log(user?.data?.token); axios .post("/api/auth/change_password", changePassward, { headers: { "Content-Type": "application/json", "x-auth-token": user?.data?.token, }, }) .then((res) => { setChangePassward(res.data) navigate("/", { replace: true }) }) .catch((err) => setError(err.response.data.message)); }; الوسائط (middleware) const protect = (req, res, next) => { // Get token from header const token = req.header('x-auth-token') // Check if no token if (!token) { return res.status(401).json({msg: 'No token, authorization denied!'}) } // Verify token 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'}) } } المتصفح يخبرني برسالة الخطأ التالية POST http://localhost:3000/api/auth/change_password 401 (Unauthorized) عند إستخدام postman لم ألاحظ أي مشاكل
- 2 اجابة
-
- 1
-
السلام عليكم. لإرسال بيانات إلى الخادم قمت بالكود التالي const navigate = useNavigate() const [error, setError] = useState('') const [changePassward, setChangePassward] = useState({ password: '', newPassword: '' }) const { password, newPassword } = changePassward const onChange = (e) => { setChangePassward({...changePassward, [e.target.name]: e.target.value}) } console.log(newPassword) const onSubmit = (e) => { e.preventDefault(); const user = JSON.parse(localStorage.getItem('user')) const headers = new Headers({ 'Content-Type': 'application/json', 'x-auth-token': user?.data?.token }); const requestOptions = { method: 'POST', // or 'POST', 'PUT', 'DELETE', etc. headers: headers }; fetch('/api/auth/change_password', requestOptions) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); لكن ظهرت لي رسالة خطأ هذا الكود في server const changePassword = async(req,res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({errors: errors.array()}) } try { const { password, newPassword } = req.body; const id = new mongoose.Types.ObjectId(req.user); const current_user = await User.findOne({ _id: id }); // Check if password is wrong then create error. const matchPassword = await bcrypt.compare( password, current_user.password ); if (!matchPassword) { return res.status(401).send({msg: "كلمة المرور خاطئة"}) } // Update password. const salt = await bcrypt.genSalt(10); const hashNewPassword = await bcrypt.hash(newPassword, salt) current_user.password = hashNewPassword; await current_user.save() res.send(res.json({ success: true, data: current_user })) } catch (error) { res.status(500).send({msg: error.message}); } } // /api/auth/change_password router.post( "/change_password", [ check("newPassword","required field") .not() .isEmpty(), ], protect, changePassword ); شكرا للمساعدة
-
سبب الخطأ هو أنه لم يتعرف على const current_user = await User.findOne({_id: id}) فكان الحل كالآتي const changePassword = async(req,res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({errors: errors.array()}) } try { const { password, newPassword } = req.body; const id = new mongoose.Types.ObjectId(req.user); const current_user = await User.findOne({ _id: id }); console.log(current_user); res.send(current_user); } catch (error) { res.status(500).send({msg: error.message}); } }
-
السلام عليكم. أريد تغيير كلمة المرور للمستخدم الحالي. قمت بالكود التالي const changePassword = async(req,res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({errors: errors.array()}) } try { const { password, newPassword} = req.body; const current_user = await User.findById( req.user ) console.log(req.body) res.send(current_user) } catch (error) { console.log(error) res.status(500).send("Server Error"); } } هذه واجهة Postman تظهرلي رسالة الخطأ التالية node:internal/errors:491 ErrorCaptureStackTrace(err); ^ Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at new NodeError (node:internal/errors:400:5) at ServerResponse.setHeader (node:_http_outgoing:663:11) at ServerResponse.header (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\express\lib\response.js:794:10) at ServerResponse.send (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\express\lib\response.js:174:12) at ServerResponse.json (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\express\lib\response.js:278:15) at ServerResponse.send (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\express\lib\response.js:162:21) at changePassword (C:\Users\saadaoui\Desktop\chat-app\server\controllers\authCtr.js:129:9) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { code: 'ERR_HTTP_HEADERS_SENT' } الرجاء المساعدة في معالجة الخطأ. شكرا
- 3 اجابة
-
- 1
-
السلام عليكم. عند إنشاء حساب جديد في المثال التالي const onSubmit = async e => { e.preventDefault() axios.post('/api/auth/register', formData) .then(res => { setIsLoggedIn(true) localStorage.setItem("user", JSON.stringify(res.data)); navigate("/", { replace: true }) }) .catch(error => setError(error.response.data.message)) } يقع التنقل نحو صفحة المحادثات بالشكل التالي في هذه الحالة تم حفظ المستخدم الجديد بالذاكرة المحلية للمتصفح و كذلك بقاعدة البيانات، و بالتالي من المفروض أن تكون الصفحة كالآتي قمت بجلب المستخد الحالي و بقية المستخدمين كالآتي useEffect(() => { const getUser = async() => { const user = JSON.parse(localStorage.getItem('user')) await axios.get('/api/auth', { headers: { 'Content-Type': 'application/json', 'x-auth-token': user?.data?.token }}) .then(res => setCurrentUser(res.data)) .catch(err => console.log(err, "err")) } getUser() }, []) ------------------------------------------------ useEffect(()=> { const getUsers = async() => { try { const res = await axios.get(`/api/auth/allusers/${currentUser?._id}`) setUsers(res.data) } catch (error) { console.log(error.message) } } getUsers() },[currentUser?._id]) شكرا على المساعدة
-
السلام عليكم. أواجه في التنقل بين الصفحات حيث يتوجب علي تحديث الصفحة كلما أردت الحصول على الصفحة المطلوبة function App() { const user = JSON.parse(localStorage.getItem('user')) return ( <Router> <Routes> <Route path='/' element={user ? <Chat/> : <Navigate to='/login'/>} /> <Route path="/login" element={ !user ? <Login/> : <Navigate to='/' />}/> <Route path="/register" element={ !user ? <Register/> : <Navigate to='/login'/> }/> <Route path= "/*" element={ <NotFound/> }/> </Routes> </Router> ); } في هذا المثال مثلا لا يمكن لصفحة تسجيل الدخول بعد النقر على تسجيل الخروج إلا بعد تحديث الصفحة. كذلك بعد تسجيل الدخول لا يمككن التنقل لصفحة المحادثة إلا بعد تحديث الصفحة Login import React, { useState } from 'react' import { Card, Input, Button, Form } from 'reactstrap' import { Link, useNavigate } from 'react-router-dom'; import Error from '../components/Error'; import axios from 'axios' function Login() { const [error, setError] = useState('') const navigate = useNavigate(); const [formData, setFormData] = useState({ name: '', password: '' }) const { name, password } = formData const onChange = (e) => { setFormData({...formData, [e.target.name]: e.target.value}) } const onSubmit = async e => { e.preventDefault() axios.post('/api/auth/login', formData) .then(res => { localStorage.setItem("user", JSON.stringify(res.data)); navigate("/") }) .catch(error => setError(error.response.data.message)) } return ( <Card className="auth col-lg-3 col-sm-6"> <Form onSubmit={onSubmit}> <img src="" alt="" width="200" /> <h5 className="mb-4"> تسجيل الدخول</h5> <Error error={error} /> <Input value={name} name="name" onChange={onChange} placeholder="الاسم" required autoFocus /> <Input type="password" value={password} name="password" onChange={onChange} placeholder="كلمة المرور" required /> <Button color="primary" block className="mb-3"> {" "} تسجيل الدخول{" "} </Button> <small> <Link to="/register">إنشاء حساب جديد</Link> </small> <p className="m-3 text-muted">© {new Date().getFullYear()}</p> </Form> </Card> ); } export default Login Logout import React, {useEffect} from 'react' import { Row, DropdownItem, DropdownMenu, DropdownToggle, Nav, UncontrolledDropdown} from "reactstrap"; import Avatar from '../Avatar'; import { Navigate, useNavigate } from 'react-router-dom'; function ChatHeader({ receiver, users }) { const navigate = useNavigate() // Find Receiver Avatar const receiverAvatar = users.find(u=> u._id === receiver?._id) // logout const logout = () => { navigate('/login') localStorage.clear() } // useEffect(()=>{ // logout() // }, []) return ( <div> <Row className="heading m-0"> <div // onClick={props.toggle} > <Avatar src={receiverAvatar?.avatar} /> </div> <div className="text-right"> <div>{receiver ? receiver.name : ''}</div> {/* <small>{status()}</small> */} </div> <Nav className="mr-auto" navbar> <UncontrolledDropdown> <DropdownToggle tag="a" className="nav-link"> <i className="fa fa-ellipsis-v" /> </DropdownToggle> <DropdownMenu> <DropdownItem >تغيير كلمة المرور</DropdownItem> <DropdownItem divider /> <DropdownItem onClick={()=>logout()}>تسجيل الخروج</DropdownItem> </DropdownMenu> </UncontrolledDropdown> </Nav> </Row> </div> ) } export default ChatHeader شكرا على المساعدة
- 2 اجابة
-
- 1
-
السلام عليكم. لو سمحتم هل توجد مقالات أو فيديوهات توضح كيف و متى و أين يقع إستعمال http headers. حبذا لو تكون مرفوقة بأمثلة. لغة البرمجة javascript. شكرا لكم.
- 1 جواب
-
- 1
-
- 9 اجابة
-
- 1
-
شكرا نفس الخطأ دائما. في الكونسول تظهر error.message في الدالة التالية // fetch users useEffect(()=> { const getUsers = async() => { try { const res = await axios.get(`/api/auth/allusers/${currentUser?._id}`) setUsers(res.data) } catch (error) { console.log(error.message) } } getUsers() },[currentUser?._id])
-
السلام عليكم. في قاعدة البيانات mongodb قمت بإنشاء العديد من المستخدمين و كل مستخدم لديه إسم و كلمة مرور و غير ذلك. User Model const mongoose = require('mongoose'); const UserSchema = new mongoose.Schema({ name: { type: String, required: true, unique: true, maxlength: 20 }, username: { type: String, required: true, maxlength: 20 }, password: { type: String, required: true, minLength: 6 }, about: { type: String, maxlength: 100 }, avatar: String, }) const User = mongoose.model('User', UserSchema) module.exports = { User, } عند تسجيل مستخدم جديد mongodb تقوم بإسناد معرف وحيد _id قمت بجلب جميع المستخدمين عدا المستخدم المسجل بالطريقة التالية: // Get all users except the connected user const getUsers = async(req,res) => { const userId = req.params.id try { const users = await User.find({ _id: { $ne: userId } }).select([ "name", "username", ]); res.json(users); } catch (error) { console.log(error) res.status(500).send("Server error"); } } // fetch users useEffect(()=> { const getUsers = async() => { try { const res = await axios.get(`/api/auth/allusers/${currentUser?._id}`) setUsers(res.data) } catch (error) { console.log(error.message) } } getUsers() },[currentUser?._id]) في طرف يظهر جميع المستخدمين لكن المشكل هو ظهور رسالة خطأ تشير إلى عدم التعرف _id شكرا على المساعدة
- 9 اجابة
-
- 1
-
شكرا سأرسل ملفات المشروع تفضل مع جزيل الشكر hsoub.zip
-
السلام عليكم. الرجاء توضيح الخطأ التالي. CastError: Cast to ObjectId failed for value "undefined" (type string) at path "_id" for model "User" at ObjectId.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schema\objectid.js:250:11) at SchemaType.applySetters (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1220:12) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1632:15) at ObjectId.handleSingle (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1562:15) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1629:20) at cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast.js:334:39) at Query.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4911:12) at Query._castConditions (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2232:10) at model.Query._find (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2258:8) at model.Query.exec (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4430:28) { stringValue: '"undefined"', messageFormat: undefined, kind: 'ObjectId', value: 'undefined', path: '_id', reason: BSONError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer at new ObjectId (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\bson\lib\bson.cjs:2055:23) at castObjectId (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast\objectid.js:25:12) at ObjectId.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schema\objectid.js:248:12) at SchemaType.applySetters (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1220:12) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1632:15) at ObjectId.handleSingle (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1562:15) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1629:20) at cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast.js:334:39) at Query.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4911:12) at Query._castConditions (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2232:10), valueType: 'string', model: Model { User } } CastError: Cast to ObjectId failed for value "undefined" (type string) at path "_id" for model "User" at ObjectId.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schema\objectid.js:250:11) at SchemaType.applySetters (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1220:12) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1632:15) at ObjectId.handleSingle (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1562:15) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1629:20) at cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast.js:334:39) at Query.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4911:12) at Query._castConditions (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2232:10) at model.Query._find (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2258:8) at model.Query.exec (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4430:28) { stringValue: '"undefined"', messageFormat: undefined, kind: 'ObjectId', value: 'undefined', path: '_id', reason: BSONError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer at new ObjectId (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\bson\lib\bson.cjs:2055:23) at castObjectId (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast\objectid.js:25:12) at ObjectId.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schema\objectid.js:248:12) at SchemaType.applySetters (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1220:12) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1632:15) at ObjectId.handleSingle (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1562:15) at SchemaType.castForQuery (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\schematype.js:1629:20) at cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\cast.js:334:39) at Query.cast (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:4911:12) at Query._castConditions (C:\Users\saadaoui\Desktop\chat-app\server\node_modules\mongoose\lib\query.js:2232:10), valueType: 'string', model: Model { User } } مع العلم الكود يعمل بصفة عادية. شكرا لكم.
-
السلام عليكم. لجلب البيانات من قاعدة البيانات قمت بالكود التالي useEffect(() => { const getUser = async() => { await axios.get('/api/auth') .then(res => console.log(res.data)) .catch(err => console.log(err, "err")) } getUser() }, []) package.json "proxy": "http://127.0.0.1:3001" في جهة الخادم authCtr.js const getCurrentUser = async(req, res) => { try { const user = await User.findById(req.user.id).select('-password'); res.json(user) } catch (error) { console.log(error) res.status(500).send("Server error"); } } authRoute.js // /api/auth router.get('/', protect, getCurrentUser) server.js app.use('/api/auth', require('./routes/authRoute')) الدالة protect const jwt = require("jsonwebtoken") const protect = (req, res, next) => { // Get token from header const token = req.header('x-auth-token') // Check if no token if (!token) { return res.status(401).json({msg: 'No token, authorization denied!'}) } // Verify token 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'}) } } module.exports = protect عند إستخدام postman لا توجد مشاكل لكن في طرف العميل تظهر رسالة الخطأ التالية شكرا على المساعدة
- 11 اجابة
-
- 1