对于使用Google OAuth2.0的refresh_token文档中的确切POST,400错误请求错误

时间:2016-09-30 16:24:56

标签: oauth oauth-2.0 google-oauth

我相信我在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);}});

5 个答案:

答案 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>