Laravel望远镜-禁止使用403

标签 laravel laravel-5

我已经实现了Laravel Telescope,并且只有APP_ENV=local才能访问

我遵循了Laravel的文档,并更改了TelescopeServiceProvider.php中的代码(请注意,我的环境被称为loca,dev,testing和prod)。

我可以访问Telescope的唯一方法是在每个环境中更改APP_ENV=local

有谁知道哪个问题可以解决?

问候

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Gate;
use Laravel\Telescope\IncomingEntry;
use Laravel\Telescope\Telescope;
use Laravel\Telescope\TelescopeApplicationServiceProvider;

class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        // Telescope::night();

        $this->hideSensitiveRequestDetails();

        Telescope::filter(function (IncomingEntry $entry) {
            if ($this->app->environment('local') || $this->app->environment('dev') || $this->app->environment('test') || $this->app->environment('prod')) {
                return true;
            }


            return $entry->isReportableException() ||
                   $entry->isFailedRequest() ||
                   $entry->isFailedJob() ||
                   $entry->isScheduledTask() ||
                   $entry->hasMonitoredTag();
        });
    }

    /**
     * Prevent sensitive request details from being logged by Telescope.
     *
     * @return void
     */
    protected function hideSensitiveRequestDetails()
    {
        if ($this->app->environment('local') || $this->app->environment('dev') || $this->app->environment('test') || $this->app->environment('prod')) {
            return;
        }

        Telescope::hideRequestParameters(['_token']);

        Telescope::hideRequestHeaders([
            'cookie',
            'x-csrf-token',
            'x-xsrf-token',
        ]);
    }

    /**
     * Register the Telescope gate.
     *
     * This gate determines who can access Telescope in non-local environments.
     *
     * @return void
     */
    protected function gate()
    {
        Gate::define('viewTelescope', function ($user) {
            return in_array($user->email, [
                //
            ]);
        });
    }
}


这是我的confif/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,

最佳答案

默认情况下,您只能在local环境中访问此仪表板。

app/Providers/TelescopeServiceProvider.php文件中,有一个gate方法。此授权门控制非本地环境中对Telescope的访问。您可以根据需要随意修改此门,以限制对Telescope安装的访问:

/**
 * Register the Telescope gate.
 *
 * This gate determines who can access Telescope in non-local environments.
 *
 * @return void
 */
protected function gate()
{
    Gate::define('viewTelescope', function ($user) {
        return in_array($user->email, [
            // Your users
            'user@yourapp.tld',
        ]);
    });
}

关于Laravel望远镜-禁止使用403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60731428/

相关文章:

javascript - 如何在 laravel 5 中删除此脚本 "/vendor/composer/installed.js"

php - 数据库记录created_at时间随机变化

php - 使用 Visual Studio Code 的 Xdebug 会忽略一些断点

database - 如何查看我的 laravel 数据库?

laravel-5 - 删除 Laravel 5 中排队的作业

php - 让 Laravel 5 与适用于 OSX 的 xampp 一起工作

php - Laravel 查询中的动态排序依据

php - hasmanythrough 关系不起作用

php - 如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

javascript - Vue.js 显示项目