زينة العمري نشر 11 مايو أرسل تقرير مشاركة نشر 11 مايو لو سمحتو عم جرب ساوي route معينة: Route::group(["middleware"=>['auth:sanctum']],function(){ Route::get('/getRole', [UserController::class, 'getRole']); }); لكن كل ما اقوم بطلب الAPI بهالشكل: http://127.0.0.1:8000/api/getRole يرجع لي هالرسالة: { "message": "Unauthenticated." } لكني أريد تغيير هالرسالة الافتراضية التي تظهر في حال الشخص اللي يطلبها غير مسجل دخول. كيف أقوم بذلك؟؟؟ 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد_عاطف نشر 11 مايو أرسل تقرير مشاركة نشر 11 مايو نعم يمكن ذلك حيث إن auth:sanctum إذا لم يكن الشخص قيد تسجيل الدخول فانه يقوم بارسال خطأ AuthenticationException , ويمكننا اضافة رسائل معينه او تخصيص الرد على هذا النوع من الاخطاء كالتالي. لنقم بالذهاب الى ملف app\Exceptions\Handler.php ونقم بكتابة هذا الكود . use Illuminate\Auth\AuthenticationException; public function register() { $this->renderable(function (AuthenticationException $e, $request) { if ($request->is('api/*')) { return response()->json([ 'status_code' => 401, 'success' => false, 'message' => 'هنا الرسالة التى نريدها.' ], 401); } }); } حيث نقوم بكتابة اول سطر بعد اسطر ال use فى الملف ونقوم باستبدال دالة register بالكود السابق , أما إذا كانت دالة register ليست فارغة فلنقم فقط باضافة السطر الذى بداخل الدالة إلى الدالة الموجودة فى الملف لديك . ويمكنك تخصيص اى رسالة او بيانات إضافيه تريدين إضافتها . 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ali Ibrahim12 نشر 11 مايو أرسل تقرير مشاركة نشر 11 مايو الحل بسيط بالذهاب الى المسار التالي app/Exceptions/Handler.php وقومي بوضع الاستدعاء التالي في اعلى الملف use Illuminate\Auth\AuthenticationException; وبعدها ضعي التابع التالي داخل كلاس ال Handler : protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()){ return response()->json(['message' => "Token is expired"], 401); } return parent::render($request, $exception); } يمكن نغير الرسالة بتغير الرسالة التالي كما تريد او ارجاع اي رسالة او رد ترغب به Token is expired سوف يظهر الرد كالتي { "message": "Token is expired" } حيث قمنا بعمل Overriding للدالة unauthenticated باعادة تعريفها مرة اخرة وتغير الجسم الخاص بها وتعبر رسالة unauthenticated نوع من الException لذلك الموقع المناسب لها في ملف Handler الخاص بال Exception 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 زينة العمري نشر 11 مايو الكاتب أرسل تقرير مشاركة نشر 11 مايو بتاريخ 1 ساعة قال محمد_عاطف: نعم يمكن ذلك حيث إن auth:sanctum إذا لم يكن الشخص قيد تسجيل الدخول فانه يقوم بارسال خطأ AuthenticationException , ويمكننا اضافة رسائل معينه او تخصيص الرد على هذا النوع من الاخطاء كالتالي. لنقم بالذهاب الى ملف app\Exceptions\Handler.php ونقم بكتابة هذا الكود . use Illuminate\Auth\AuthenticationException; public function register() { $this->renderable(function (AuthenticationException $e, $request) { if ($request->is('api/*')) { return response()->json([ 'status_code' => 401, 'success' => false, 'message' => 'هنا الرسالة التى نريدها.' ], 401); } }); } حيث نقوم بكتابة اول سطر بعد اسطر ال use فى الملف ونقوم باستبدال دالة register بالكود السابق , أما إذا كانت دالة register ليست فارغة فلنقم فقط باضافة السطر الذى بداخل الدالة إلى الدالة الموجودة فى الملف لديك . ويمكنك تخصيص اى رسالة او بيانات إضافيه تريدين إضافتها . شكرا لك بتاريخ 1 ساعة قال Ali Ibrahim12: الحل بسيط بالذهاب الى المسار التالي app/Exceptions/Handler.php وقومي بوضع الاستدعاء التالي في اعلى الملف use Illuminate\Auth\AuthenticationException; وبعدها ضعي التابع التالي داخل كلاس ال Handler : protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()){ return response()->json(['message' => "Token is expired"], 401); } return parent::render($request, $exception); } يمكن نغير الرسالة بتغير الرسالة التالي كما تريد او ارجاع اي رسالة او رد ترغب به Token is expired سوف يظهر الرد كالتي { "message": "Token is expired" } حيث قمنا بعمل Overriding للدالة unauthenticated باعادة تعريفها مرة اخرة وتغير الجسم الخاص بها وتعبر رسالة unauthenticated نوع من الException لذلك الموقع المناسب لها في ملف Handler الخاص بال Exception شكرا لشرحك فبعض الامور التي اوضحتها لم اكن افهمها بشكل جيد اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
زينة العمري
لو سمحتو عم جرب ساوي route معينة:
لكن كل ما اقوم بطلب الAPI بهالشكل: http://127.0.0.1:8000/api/getRole
يرجع لي هالرسالة:
لكني أريد تغيير هالرسالة الافتراضية التي تظهر في حال الشخص اللي يطلبها غير مسجل دخول. كيف أقوم بذلك؟؟؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.