【问题标题】:How do I create a JWT Token for Prime Trust's API?如何为 Prime Trust 的 API 创建 JWT 令牌?
【发布时间】:2020-02-05 21:42:05
【问题描述】:

我正在使用 Prime Trust's API,但我无法创建 JWT 令牌。我正在关注documentation,其中声明如下:

托管 API 入门 -(特定于沙盒)

您需要按照当前步骤通过 API 开始使用

  1. 创建一个新用户
  2. 通过获取 JWT 使用 API 进行身份验证。
  3. 创建一个帐户。
  4. 测试模式 API - 批准 CIP 和 AML 帐户的所有者。
  5. 测试模式 API - 开立资金账户

我能够按照文档创建用户,但我一直坚持创建 JWT 令牌。根据文档,我应该使用以下内容创建令牌:

JSON 网络令牌 (JWT)

除了实际生成 JWT 之外,JSON Web 令牌或 JWT 是所有请求的首选身份验证方法。由于 JWT 不是持久化的服务器资源,因此它们不是使用 JSONAPI 样式的请求或响应创建的。

创建新的 JWT

可以通过使用 HTTP 传递用户凭据来创建新的 JWT 对以下端点的基本授权。任何特殊设置 IP 白名单、过期时间或 TOTP MFA 等 JWT 必须是 在创建期间作为表单值传入。

POST /auth/jwts

这是他们给出的示例调用:

curl --location --request POST "https://sandbox.primetrust.com/auth/jwts" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --form "expires_at=2019-06-06T07:30:40Z" \
  --form "otp=382948" \
  --form "cidr[]=192.168.1.213/32" \
  --form "cidr[]=127.0.0.1/32"

我已尝试将不同的调用与下面概述的详细信息组合在一起,但在我的所有尝试中都出现以下错误:

401 Unauthorized
{
    "errors": [
        {
            "status": 401,
            "title": "Not authenticated."
        }
    ]
}

机构

POST https://sandbox.primetrust.com/auth/jwts     

POST https://sandbox.primetrust.com/auth/jwts     
{
    "email": "email@email.com",
    "password": "123abc"
}

POST https://sandbox.primetrust.com/auth/jwts     
{
    "data": {
        "email": "email@email.com",
        "password": "123abc"
    }
}

POST https://sandbox.primetrust.com/auth/jwts     
{
    "name": "name",
    "email": "email@email.com",
    "password": "123abc"
}

POST https://sandbox.primetrust.com/auth/jwts     
{
    "id": {guid},
    "name": "name",
    "email": "email@email.com",
    "password": "123abc"
}

POST https://sandbox.primetrust.com/auth/jwts     
{
    "id": {guid},
    "password": "123abc"
}

标题

Content-Type: application/json
expires_at: 2019-12-31T11:59:59Z
alg: HS256
typ: JWT

我认识到我的调用与示例调用不完全一致,但我从文档中的理解是,应该只需要一个名称和密码来生成 JWT 令牌。我错过了什么?


更新 1

基于获得 Prime Trust 支持,用户名/电子邮件需要作为参数包含在 URL 的正文中,而不是包含在正文中。我尝试了以下网址但没有成功

https://sandbox.primetrust.com/auth/jwts?email=email@email.com&password=123abc&id={guid}
https://sandbox.primetrust.com/auth/jwts?email=email@email.com&password=123abc
https://sandbox.primetrust.com/auth/jwts?password=123abc&id={guid}
https://sandbox.primetrust.com/auth/jwts?name=name&password=123abc

【问题讨论】:

    标签: rest jwt


    【解决方案1】:

    根据文档:

    创建新的 JWT

    可以通过使用 HTTP 基本授权将用户凭据传递到以下端点来创建新的 JWT。 JWT 上的任何特殊设置,例如 IP 白名单、过期时间或 TOTP MFA,都必须在创建期间作为表单值传入。

    因此,基本上您所需要的只是使用您的凭据创建一个 Authorization 标头设置为 Basic Auth:

    curl -X POST \
      https://sandbox.primetrust.com/auth/jwts \
      -H 'Authorization: Basic YOUR_BASE64_ENCODED_EMAIL_AND_PASSWORD' \
      -H 'Content-Type: application/x-www-form-urlencoded' \
      -H 'cache-control: no-cache'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      相关资源
      最近更新 更多