[英]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变量,并将该令牌存储在其中。
但是其中的某些脚本已过时。
我将从创建一个环境(本地)开始,在该环境中添加一个密钥来存储值为空的令牌(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 变量
回顾一下:
我建议使用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.