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

السؤال

نشر

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

ويظهر الخطأ 403 Forbidden مباشرةً عند التوجه لمسار لوحة التحكم. ولكن عند تغيير القيمة إلى APP_ENV=local يعمل بشكل صحيح. ماهي المشكلة وهل يجب إبقاء القيمة إلى local حتى يعمل على خادم الويب؟

هذا ملف config/app.php:

/*
 * Application Service Providers...
 */
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\TelescopeServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,

 

Recommended Posts

  • 0
نشر

بشكل إفتراضي يعمل تيليسكوب فقط على بيئة التطوير مع حظر الوصول له عند النشر على خادم الويب وتغيير APP_ENV لتصبح جاهزة للنشر.

ولكن يمكن تعديل ذلك بالتوجه إلى المسار التالي:

app/Providers/TelescopeServiceProvider.php

وتعديل محتوى gate المسؤول عن منع الوصول إلى تيليسكوب وإضافة بعض الحسابات الاستثنائية كالتالي:

 * @return void
 */
protected function gate()
{
    Gate::define('viewTelescope', function ($user) {
        return in_array($user->email, [

            // المستخدمين المسموح لهم الوصول إليه

            'user@yourapp.com',
        ]);
    });
}

يجب أيضاً إجراء الأمر التالي عند التغيير على قيم .env لتجنب حدوث أي مشاكل:

php artisan config:cache

 

  • 0
نشر (معدل)

توجد طريقة أخرى لحل هذه المشكلة, وهي عن طرق إعادة تضمين اسم البيئة في الدالة authorization في ملف App\Providers\TelescopeServiceProvider

يجب تغيير القيمة المسترجعة من  الدالة authorization

/**
 * Configure the Telescope authorization services.
 *
 * @return void
 */
protected function authorization()
{
    $this->gate();

    Telescope::auth(function ($request) {
        return app()->environment('local') ||
               Gate::check('viewTelescope', [$request->user()]);
    });
}

بالقيمة التالية مع تضمين اسم البيئة testing  :

return app()->environment(['local', testing]) ||
       Gate::check('viewTelescope', [$request->user()]);

 

تم التعديل في بواسطة محمد أيت لعرايك

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...