- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经从 Google API 控制台启用了一个服务帐户来执行 双足 OAuth
以调用 Google Analytics API。我正在使用 JavaScript 并遵循了 pure JavaScript implementation of JWT and JWS生成签名的 JWT 并按照 guide 中的描述对 token 进行 HTTP/REST 调用.使用 encodedURL 进行 POST
后,我会收到 400“error”:“invalid_grant”。 "error_description": "错误请求"
我阅读了一些帖子以确保在请求中包含电子邮件而不是 client_id
。我确定情况确实如此,从那时起谷歌更新了他们的文档。
有什么想法吗?如有必要,我也会发布代码,但我主要关注 Rothrock在此 link 的帖子.
我在 http://jwt.io/ 上尝试了签名的 JWT它说这是无效的签名。 payload
和 header
正确解码。 Google API控制台提供的私钥编码后,有没有办法测试签名?
这是我的代码:
var pHeader = {"alg":"RS256", "typ":"JWT"};
var sHeader = JSON.stringify(pHeader);
var pClaim ={};
pClaim.iss = "(ServiceAccount_Email_Address).apps.googleusercontent.com";
pClaim.scope = "https://www.googleapis.com/auth/analytics.readonly";
pClaim.aud = "htps://www.googleapis.com/oauth2/v3/token";
pClaim.exp = KJUR.jws.IntDate.get("now + 1hour");
pClaim.iat = KJUR.jws.IntDate.get("now");
var sClaim = JSON.stringify(pClaim);
var key = "-----BEGIN PRIVATE KEY----- Private Key from JSON file ----END PRIVATE KEY-----";
var sJWS = KJUR.jws.JWS.sign('RS256', sHeader, sClaim, key);
var urlEncodedData = '';
var urlEncodedDataPairs = [];
var token;
urlEncodedDataPairs.push("grant_type" + '=' + "urn:ietf:params:oauth:grant-type:jwt-bearer");
urlEncodedDataPairs.push("assertion" + '=' + sJWS);
urlEncodedData = urlEncodedDataPairs.join('&').replace(/%20/g,'+');
$(function(){
$.ajax({
type: "POST",
url: 'https://www.googleapis.com/oauth2/v3/token',
data: urlEncodedData,
dataType: 'JSON',
contentType: 'application/x-www-form-urlencoded',
success: function(result){
console.log(JSON.stringify(result));
}
});
});
最佳答案
我之前找到了这个问题的答案,但想把它贴在这里进行澄清。上面代码中的所有内容都是正确的。提供的 SSH key 中有一些有效的 \n
字符。我的 key 在 -----BEGIN PRIVATE KEY-----
和实际 key 字符串的开头之间有一行。
关于javascript - 来自 GoogleAPI 的 JWT 的 Oauth2 token 响应 "invalid_grant",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172884/
我正在尝试向 Google 联系人 API 验证我的应用程序。我已经完成了 Oauth2 流程的第一步并获得了授权码。我正在尝试将此代码交换为访问 token 和刷新 token ,但是当我尝试从 g
我正在尝试将 Google Plus API 集成到我的网络应用程序中。 我能够通过 Google 进行身份验证并获得代码。当我尝试使用 HttpClient 获取 access_token 时,会出
DocuSign documentation通过易于遵循的授权流程进行代码授予。我能够从初始 GET 请求中获取“代码”到/oath/auth,但是当我在 postman 中尝试时,获取 token
我正在尝试使用我的值设置 config.php,但出现此 fatal error : fatal error :未捕获的异常“Google_AuthException”,消息为“获取 OAuth2 访
我一直在尝试创建一个 access_token对于我的 api。我已经 followed the setup并且正在使用 Postman 测试/创建 token 。我似乎无法通过 invalid_gr
我正在尝试从基于站点的 WebService 调用 Azure 托管 WebAPI。基于站点的服务是 adal-angluar SPA,然后必须调用 Azure 中托管的 REST API。来自 AA
我关注了这个资源:https://REDACTED.b2clogin.com/REDACTED.onmicrosoft.com/B2C_1A_DEMO_CLIENTCREDENTIALSFLOW/oa
我正在使用 Java 运行 Analytics-cmdline-sample 应用程序。我使用的是 Maven 2.2.1,我在 Google Api 控制台中创建了 client_Id 和 clie
我关注了这个资源:https://REDACTED.b2clogin.com/REDACTED.onmicrosoft.com/B2C_1A_DEMO_CLIENTCREDENTIALSFLOW/oa
在尝试使用 Active Directory 进行身份验证以检索访问 token 时,我按照以下步骤操作: 1 - 按照以下说明在 Azure 中创建应用程序(步骤 3): https://githu
我想做什么:我正在将 Spotify SDK 实现到我的 iOS 项目中。我已成功收到 Spotify API 的访问 token ,因为我能够使用所述 API 执行搜索艺术家、搜索歌曲和查看播放列表
当 OAuth2Credential 对象尝试刷新其 access_token 时,有时它会收到 invalid_grant 错误,然后变得无法刷新。我使用的代码基于 Google 的 python
我正在创建一个 API 来包装 google oauth。我正在使用谷歌Python客户端库。 api.py 中的代码 from flask import request, g from ..help
我已经查看了关于此主题的其他问题,它似乎与我的错误不符。运行 Google Sheets APIv4 时出现错误: 引发 HttpAccessTokenRefreshError(error_msg,
最近我一直在为这个问题烦恼。 一些背景 使用oauth2client库来管理用户的 token 。 token 用于定期并发执行各种后台任务。 每次这些任务之一即将为用户运行时,我们都会从存储中获取凭
我正在尝试构建一个访问 Google Analytics API 并提取数据的网络应用程序。但是,我在 OAuth 2.0 授权方面遇到了一些问题。 它允许成功的初始访问,但它很快将我踢出并在我点击刷
我正在尝试使用 Mailchimp 的 OAuth 完成身份验证实现,我的访问 token 请求正在获取“无效授权”错误。 使用 ruby HTTParty gem,我将数据发布到 Mailchi
我创建了自己的网站 (www.luig.us)。我为 SQL 服务器创建了一个基本的 IDE,只教 child SQL,DML。 它要求用户在开始时输入用户名和密码以获得使用服务的 token 。 在
在 https://appleid.apple.com/auth/token 中尝试从 Apple 获取 oAuth token 时,我一直收到 invalid_grant 错误接口(interfac
我在我的 Raspberry PI 上使用 Google Cloud Vision API。当我在我的家庭(首次访问云帐户)网络上使用它时,它工作正常,但如果我从不同的网络访问 API,它会引发 to
我是一名优秀的程序员,十分优秀!