我相信我在OAuth文档中运行确切的POST请求(使用我的凭据),但我收到400错误。我收到了404错误,但随后重置了我的client_secret并开始使用新的client_secret,现在收到错误的请求错误。我有什么想法吗?
$.ajax({
url:'https://www.googleapis.com/oauth2/v4/token',
data:{
'code':getParameterByName('code'),
'client_id':'',
'client_secret':'',
'redirect_uri':encodeURI(url+'?mail=tokened'),
'grant_type':'authorization_code'
},
dataType:'json',
method:'POST',
success:function(response){console.log(response);}});
答案 0 :(得分:4)
您发送的redirect_uri
值很可能已关闭;它应该完全您在授权请求中发送的URL,即先前重定向到授权端点。
答案 1 :(得分:0)
这可能是一个很长的过程,但根据Using OAuth 2.0 for Web Server Applications提供的HTTP / REST示例(处理OAuth 2.0服务器响应部分),您应该发送带有内容的有效负载类型application/x-www-form-urlencoded
而不是JSON。
除了规范中提到的application/x-www-form-urlencoded
之外,我已经看到其他OAuth实现接受JSON有效负载,但Google实现可能更严格。
答案 2 :(得分:0)
我已经测试了您的代码,如果您拥有有效的授权码并且相应地填写了客户端ID,密钥和重定向URI,它就可以正常工作。在你的代码片段中,client_id和client_secret被设置为空字符串,这可能就是它无法正常工作的原因。 Google OAuth端点会返回包含错误请求响应的错误消息,可以帮助您发现所发送参数的错误。
答案 3 :(得分:0)
您的grant_type需要与'authorization_code'不同。获得令牌时遇到问题。 尝试grant_type = refresh_token
答案 4 :(得分:0)
.env
文件中的重定向 URL 应该与Google Developer帐户中的 URL 相同,并检查路由web.php
中的重定向URL < / p>