微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 api_token 参数更改为某些自定义参数,例如 api_key 或 key

如何解决如何将 api_token 参数更改为某些自定义参数,例如 api_key 或 key

我有一个使用 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 的中间件,但我无法找到该中间件来尝试更改其配置。

解决方法

我已经有一段时间没有这样做了,但我相信 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,],];
,

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

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 中获取令牌

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。