【发布时间】: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