【问题标题】:Building a JWT for Twilio's Authy using Apps Script使用 Apps 脚本为 Twilio 的 Authy 构建 JWT
【发布时间】:2020-01-31 12:17:10
【问题描述】:

No-PII user registration JWT 用于在 Twilio 的授权中添加用户要求我们从头开始构建 JWT。

我尝试到处寻找如何使用 Google Apps 脚本创建 JWT,但没有找到实现这一目标的正确方法。它特别需要是HS256 alg。

我要求最终的有效载荷看起来完全像这样 -

// Example Payload
{
  "iss": "My Authy App",
  "iat": 1554395479,
  "exp": 1554395879,
  "context": {
    "custom_user_id": "3YgAIZklGPHmwpJfIC0PDy0E7l763OF3BHZo1p2xKhY",
    "authy_app_id": "1111111"
  }
}

// Example Header
{
  "alg": "HS256",
  "typ": "JWT"
}

有人可以帮我解决这个问题,或者给我指出一个合适的文章/文档吗?

【问题讨论】:

  • 您是否尝试过使用此处提供的内容? - wtfruby.com/gas/2018/11/21/jwt-app-scripts.html 当我在 Google 上搜索 JWT using Google Apps Script 时,这是我的前 3 个结果:)
  • 哦!太棒了。有人应该把它做成一个图书馆并作为一个要点发布:)
  • 常见的oAuth library 有jwt支持。您只需要 setPrivateKey() 即可启动 jwt 流。可以使用 setAdditionalClaims 添加任何其他声明。见sample
  • 重读时,您需要HMAC(HS256) 而不是RSA(RS256)。库默认为RS256,无法更改。虽然您仍然可以使用库中的链接代码作为示例。

标签: google-apps-script oauth jwt authy


【解决方案1】:

使用 Google Apps 脚本获取 URL 的一般语法如下:

var body={
  "iss": "My Authy App",
  "iat": 1554395479,
  "exp": 1554395879,
  "context": {
    "custom_user_id": "3YgAIZklGPHmwpJfIC0PDy0E7l763OF3BHZo1p2xKhY",
    "authy_app_id": "1111111"
  };
var header={
  "alg": "HS256",
  "typ": "JWT"
};
var url='YOUR URL';
var options={
  method: 'POST',
  headers: header,
  muteHttpExceptions: true,
  contentType: 'application/json',
  payload: JSON.stringify(body)
};
var response=UrlFetchApp.fetch(url, options);

根据您提供的文档链接,您可能需要提供 API 密钥。在这种情况下,您的 URL 应该类似于 var url=basicURL+"apikey="+XXX

我没有 Twilio 帐户来测试它,但上面提供的示例是 Apps 脚本的一般过程,您可以在以下链接中找到更多参考:

【讨论】:

  • Last link 不起作用。 jwt 需要算法来签署有效载荷。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多