如何将邮递员授权OAuth2请求转换为代码PHP或可压缩过程

时间:2018-11-09 16:36:32

标签: php laravel api postman

我正在使用新的SAGE API v3.1。

首先,我正在与邮递员according manual测试获得授权。

任何问题,请测试。致电获取新访问令牌时,邮递员发送请求,SAGE打开一个模式窗口,询问我的凭据以将我的请求连接到一个帐户。

好吧。我尝试使用Laravel 5.7的几个选项,包括对Laravel Socialite的修改,但不起作用。在所有尝试中,均会收到“内部服务器错误”,我认为这是因为我发送的请求错误。

在SAGE手册上,我没有看到更多有关获得访问令牌的Postman示例。不是php,curl等的示例...

对于其他请求,我使用Guzzle没问题,但我需要与Postman一起使用tofree令牌。太可怕了。

enter image description here

图片显示了测试帐户的真实信息。

在邮递员控制台上,获取一些信息,但是由于此错误和内部服务器错误而丢失

Request Headers:
   content-type:"application/x-www-form-urlencoded"
   user-agent:"PostmanRuntime/7.3.0"
   accept:"*/*"
   host:"oauth.accounting.sage.com"
   accept-encoding:"gzip, deflate"
   content-length:274
Request Body:
   grant_type:"authorization_code"
   code:"ES/e1fd0bc2-1d06-41b6-902a-beb584f24ccf"      
   redirect_uri:"https://localhost/login/sage/callback"
   client_id:"c420127c-76f3-48e5-9c11-77fcba90402d/2c09ea61-249c-4958-96f0-89209f1939e8"
   client_secret:"?]@4iVWBhx/)gN;bA2M%"

注意:所有数据均对测试有效。  注意2:这是我听不懂的书code:"ES/e1fd0bc2-1d06-41b6-902a-beb584f24ccf"是什么?如何生成?

使用此数据,我尝试将链接https://www.sageone.com/oauth2/auth/central?grant_type%3Aauthorization_code%26code%3DES%2F37048339-8db2-4168-bfb0-760ef6709b93%26redirect_uri%3Dhttps%3A%2F%2Flocalhost%2Flogin%2Fsage%2Fcallback%26client_id%3Dc420127c-76f3-48e5-9c11-77fcba90402d%2F2c09ea61-249c-4958-96f0-89209f1939e8%26client_secret%3D%3F%5D%404iVWBhx%2F)gN%3BbA2M%25%0A)模仿Postman,但是在放置我的凭据之后,不返回回调。相反,它进入了SAGE帐户。

1 个答案:

答案 0 :(得分:1)

邮递员将获取新令牌请求作为GET请求发送,Laravel希望它是 POST请求

由于Postman的新访问令牌功能不允许您将请求方法更改为POST,因此我必须在Postman中进行自己的POST OAuth令牌请求才能使其正常工作。 从自定义POST请求中,您必须手动复制响应令牌,右键单击编辑您的集合,转到“授权”标签,选择“ OAuth 2.0类型”,然后在可用字段中粘贴oAuth令牌。

所有不需要使用令牌的请求,请确保在每个请求条目的“授权”选项卡中,为 TYPE 选择了从父代继承身份验证集合中的令牌。