2

我有一个使用 API 令牌身份验证的 Laravel 应用程序。默认情况下,用户需要将api_token参数作为 URL 的一部分传递,但我想更改api_token为自定义名称参数,例如api_key.

目前完整的 URL 如下所示:

https://www.example.com/api/v2/?api_token=something&action=balance

但是我希望它看起来像下面这样:

https://www.example.com/api/v2?api_key=something&action=balance

或者

https://www.example.com/api/v2?key=something&action=balance

我的 API 路由正在使用一个名为 的中间件auth:api,但我无法找到该中间件来尝试更改其配置。

4

2 回答 2

0

您可以简单地创建自己的中间件

public function handle($request, Closure $next)
{
    $token = request('key'); //it can be anything 
    if ($token != 'abc') { // this value can be static or can be get from database
        return response([
            'error' => 2,
            'message' => ["Access Denied"]
        ]);
    }
    return $next($request);
}

在这里你可以匹配令牌并允许他们特定的请求

注意:它将适用于 url 参数而不是 headers 令牌,您需要从 header 获取令牌

于 2021-01-06T03:55:48.677 回答
0

我已经有一段时间没有这样做了,但我相信auth.guards.api.input_key设置将允许您指定它。所以你的auth.php部分看起来像这样:

<?php

return [
    "guards" => [
        "api" => [
            "driver" => "token",
            "provider" => "users",         // the database table
            "storage_key" => "api_token",  // the database column
            "input_key" => "api_key",      // the query string component
            "hash" => true,
        ],
    ],
];
于 2021-01-06T01:52:50.660 回答