首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Prime Trust的API创建JWT令牌?

如何为Prime Trust的API创建JWT令牌?
EN

Stack Overflow用户
提问于 2019-10-08 15:05:05
回答 1查看 606关注 0票数 0

我正在使用的API,我无法创建一个JWT令牌。我遵循的文档声明如下:

开始使用托管APIs (特定于Sandbox) 您需要采取当前步骤才能通过APIs开始工作。

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

我能够在文档之后创建一个用户,但是我仍然停留在创建JWT令牌上。根据文档,我应该使用以下内容创建令牌:

JSON Web令牌(JWT)

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

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

下面是他们给出的一个例子:

代码语言:javascript
复制
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"

我尝试将不同的调用与下面概述的细节结合起来,但在所有尝试中都出现了以下错误:

代码语言:javascript
复制
401 Unauthorized
{
    "errors": [
        {
            "status": 401,
            "title": "Not authenticated."
        }
    ]
}

体体

代码语言:javascript
复制
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"
}

标头

代码语言:javascript
复制
Content-Type: application/json
expires_at: 2019-12-31T11:59:59Z
alg: HS256
typ: JWT

我认识到,我的调用与示例调用并不完全一致,但我从文档中了解到,只需一个名称和密码即可生成JWT令牌。我遗漏了什么?

更新1

基于对parameters的支持,用户名/电子邮件需要作为参数,而不是包含在url的正文中。我尝试了下面的URL,但没有成功

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-11-04 10:01:27

根据医生的说法:

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

因此,基本上您需要创建一个授权头,并使用您的凭据将其设置为basically:

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58289121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档