是否可以仅使用一个 API 密钥来访问 Laravel API?

Sha*_*red 2 php api api-key laravel

我是 Laravel API 世界的新手。我想制作一个简单的 Laravel 应用程序,而不是以 json 格式返回一些内容。但我不希望任何拥有 url 链接的人都可以访问它。我只想允许通过一个 API 密钥进行访问。是否可以?或者每个用户都必须有一个唯一的密钥?如何才能做到呢?

fah*_*152 5

是的,有可能。

您必须在 users 表中包含 api_token 字段,并在 api 路由中添加中间件。api.php

Schema::table('users', function ($table) {
    $table->string('api_token', 80)->after('password')
                        ->unique()
                        ->nullable()
                        ->default(null);
});
Run Code Online (Sandbox Code Playgroud)

api 路由中的中间件(api.php):

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Run Code Online (Sandbox Code Playgroud)

您也可以为您的 api 定义自定义 api 防护,例如,如果您有两个名为医生和患者的表,您将有两个表,并且对于这两个用户,您将需要唯一的 api_token,您可以在配置中定义这些自定义 api 防护/auth.php

请参阅此处: https: //laravel.com/docs/5.8/api-authentication