我正在将Laravel 5.1与Lucadegasperi's OAuth 2一起使用。我的API服务器位于具有SSL证书的AWS ElasticBeanstalk上,并通过AWS Cloudfront发行版交付。
通过Cloudfront,可以更轻松地获取https证书并节省资金,因为将证书直接添加到EC2时,您需要昂贵的负载平衡。
无论如何,我向我的生产服务器发出一个带有OAuth2访问令牌的请求时,通过DHC收到以下错误,但我的本地主机上没有问题:
“错误”:“ invalid_request”,
“ error_description”:“请求缺少必需的参数,包含无效的参数值,包含一个以上的参数,或者格式错误。请检查\”访问令牌\“参数。”
对于prod / local,我首先请求获取访问令牌(相应地更改URL):
POST: http://myapp-api.localhost/1.0/oauth/access_token
HEADERS: Content-Type: application/json
BODY: {
"username" : "my@myemail.com",
"password" : "password",
"client_id" : "myclientid",
"client_secret" : "myclientsecret",
"grant_type" : "password",
"refresh_grant" : "refresh_token"
}
这将获得访问令牌,然后我将其用于成功完成任务:
GET: http://myapp-api.localhost/1.0/quests/1
HEADERS: Authorization: Bearer aTNk...
在本地主机上获取访问令牌和请求OAuth2保护的路由/quests/1
都可以正常工作。
但是在AWS服务器上,以下相同的请求将导致以上错误:
GET: https://api.myapp.com/1.0/quests/1
HEADERS: Authorization: Bearer zYrA...