我正在尝试使用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"
}
我在这里遗漏了什么吗?无法弄清问题是什么。
答案 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