使用JWT与API交互

时间:2017-03-04 07:22:04

标签: api jwt

如何使用JWT与API进行交互。 我已经获得了一个API网址,一个集成密钥和一个持票人,而且我被告知要使用" POST集成密钥" 我需要从那里的系统和MS SQL数据库中获取数据,最好使用SSIS包。

我之前使用curl来更新并获取我的IP地址,我只需通过网站设置一个API密钥并运行如下命令。

curl -u abcdabcd-abcd-abcd-abcd-abcdabcdabcd:x -X GET https://web.site.com/api/v1/addresses.json

我理解JWT有点像,因为它编码为header.payload.signature,但我对如何使用一个系统将数据从系统中取出来感到困惑。

  • 我被给予的持票人是什么?
  • 我是否必须使用我的集成密钥和持有者从系统中获取JWT?
  • 我是否会使用该JWT与API进行交互?
  • 它会像上面的curl命令一样简单,还是需要使用jwt.io上的一个库来编写脚本

1 个答案:

答案 0 :(得分:0)

最后,在供应商/开发人员要求提供适当文档并且告诉我他的系统使用JWT之间的大约10封电子邮件之后,他给我发了一个关于他如何使用邮递员测试API的截图。从他的截图我能够弄清楚需要做什么,下面是我的powershell实现,如果它有益于任何人。

#$fromdate = (Get-Date).AddDays(-7)  
$fromdate = '01/01/2016'

[string]$body = '{"IntegrationKey":"abcdabcd-abcd-abcd-abcd-abcdabcdabcd"}'

$URI = "https://web.site.com/api/token"
# -ProxyUseDefaultCredentials
(New-Object System.Net.WebClient).Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

[string]$jwt = Invoke-WebRequest $uri -Method post -ContentType 'application/json; charset=UTF-8' -Body $body

$headers = @{"Authorization"="Bearer "+ $jwt.replace("`"","")}

$uri = "https://web.site.com/api/GetData?startDate=" + $fromdate
$response = ".\ResponseData.json"

Invoke-WebRequest $uri -Method get -Headers $headers -TimeoutSec 6000 -OutFile $response