繁体   English   中英

Laravel API调用失败。 PostMan使用基本身份验证覆盖授权标头

[英]Laravel API call failed. PostMan overrides Authorization header with Basic Auth

您好,我想从邮递员那里调用API。
使用的框架是:Laravel

该网站具有浏览器身份验证(使用.htacess)
并且该API具有用户身份验证(Laravel Passport)(用户必须登录)

现在,

我需要调用一个API并包含两个标头,即

  • 我添加了具有用户名/密码的基本身份验证作为浏览器凭据

    基本身份验证:用户名/密码

  • 在标题中我添加了

    授权:不记名oauthtoken

(其中oauthtoken是从API调用https:// servername / auth和Basic Auth检索的密钥:username / pwd)

现在,当我发送API调用时,

授权标题更改为:

授权:基本some_key

因此,我得到了未经授权的回应。
有什么方法可以一起发送浏览器凭据和用户身份验证标头?

身份验证后检索到的OAuth令牌与Postman附加的用于基本身份验证的令牌不同。

如果您希望在请求中使用OAuth令牌,建议您查看Postman变量,并将该令牌存储在其中。

这是一篇帮助我使用JWT构建邮递员收藏的文章

但是其中的某些脚本已过时。

我将从创建一个环境(本地)开始,在该环境中添加一个密钥来存储值为空的令牌(oauth_token)。

在Postman中的auth端点中,您可以检查“ 测试”选项卡,在其中可以放置用于更新oauth令牌的脚本:

pm.test("Logged in successfully", function () {
    var jsonData = pm.response.json();
    pm.environment.set('oauth_token', jsonData.token);
});

之后,您可以将值{{oauth_token}}的授权承载添加到使用OAuth令牌的端点。

如果您想了解有关Postman变量的更多信息,那么这是一个很棒的post 变量

回顾一下:

  1. 将用户名和密码发送到auth端点
  2. 将oauth令牌存储在从步骤1返回的Postman变量中
  3. 使用{{ VARIABLE_NAME }}表示法将新令牌用作Postman变量

我建议使用Guzzle库

        $http = new \GuzzleHttp\Client;
        $response = $http->request('POST', 'http://quotible.web3box.com/oauth/token', [
            'headers' => [
                //you headers here
            ],
            'form_params'=>[
                //your browser based parameters here
            ]
        ]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM