使用JWT访问Stream REST Api时出错

时间:2016-10-07 11:59:53

标签: getstream-io

我正在尝试使用JWT令牌来访问Stream Feed但每次都返回404。

令牌标题:

{
  "alg": "HS256"
}

令牌有效负载:

{
  "resource": "feed",
  "action": "read"
}

令牌是使用jjwt库生成的,并使用我的帐户信息中心中提供的密码进行签名。我也在jwt.io上验证了它,它是一个有效的令牌

地址

GET: https://api.getstream.io/api/v1.0/feed/notification/666?api-key=...
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6ImZlZWQiLCJhY3Rpb24iOiJyZWFkIn0.MUZHXQg0UD6jFpCZN5Mn1e7wwys_1qYuVtfBKtHL8QU

响应

{
    "exception": "GetStreamAPI404",
    "detail": "sorry you've hit a 404"
}

我在这里遗漏了什么吗?无法弄清问题是什么。

1 个答案:

答案 0 :(得分:2)

要执行正确的权限检查,您需要在令牌有效内容中包含feed_id字段。该字段的值必须与您尝试阅读的Feed相同,并且格式为${feed_group}:${feed_id}

例如,问题(https://api.getstream.io/api/v1.0/feed/notification/666?api-key=)中请求的有效负载应为:

{
  "resource": "feed",
  "action": "read",
  "feed_id": "notification:666"
}

注意:API网址必须以尾部斜杠结尾(例如/api/v1.0/feed/notification/666/?api_key = ...)

验证HTTP标头:

授权必须只包含JWT令牌

必须使用值jwt

发送

stream-auth-type