【问题标题】:Laravel API Actions Being Performed from non API Domains从非 API 域执行的 Laravel API 操作
【发布时间】:2020-12-31 21:40:13
【问题描述】:

Laravel 版本 8.19.0。

我正在使用全新的 Laravel 安装来测试 Sanctum,我已经在我的 routes/api.php 文件中设置了一些路由:

Route::prefix('v1')->group(function() {
    Route::middleware('auth:sanctum')->get('/users', 'App\Http\Controllers\UsersController@index');
    Route::middleware('auth:sanctum')->get('/users/{id}', 'App\Http\Controllers\UsersController@fetch');
    Route::middleware('auth:sanctum')->put('/users/{user}', 'App\Http\Controllers\UsersController@update');
    Route::middleware('auth:sanctum')->delete('/users/{user}', 'App\Http\Controllers\UsersController@destroy');
});

除此之外,我还更改了 RouteServiceProvider 以便这些 api 路由通过“api”子域工作:

public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::domain(env('API_DOMAIN'))
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
    }

来自 .env 文件:

API_DOMAIN=http://api.laravel-sanctum.com

在测试我的路由时,我注意到我可以从我的 api 路由访问这些操作,即使我从网络域(使用“测试”子域)尝试它们也是如此。

例如:当我尝试访问 api.laravel-sanctum.com/v1/users 和 test.laravel-sanctum.com/v1/users 时,Laravel 将在 UsersController 中执行索引操作。

谁能告诉我为什么会发生这种情况以及如何防止 test.laravel-sanctum.com/users URL 在 UsersController 中执行索引操作?

如果需要,很乐意提供任何进一步的信息。

谢谢。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    事实证明,发生这种情况的原因是因为 env('API_DOMAIN') 在 RouteServiceProvider 中返回 null,因为我在某个时候运行了 php artisan config:cache。通过运行php artisan config:clear,env 变量正确返回了 api 域并且路由按预期工作。

    值得向其他查看此内容的人指出,我也了解到 Laravel 建议您仅在配置文件中使用环境变量,并在您的应用程序中引用该配置文件之外的配置文件。 IE。建议在配置文件中使用env('API_DOMAIN'),并在 RouteServiceProvider 中引用所述配置变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-22
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      相关资源
      最近更新 更多