#getstream-io
#getstream-io
Вопрос:
Я пытаюсь использовать токен JWT для доступа к потоковому каналу, но он каждый раз возвращает 404.
Заголовок токена:
{
"alg": "HS256"
}
Полезная нагрузка токена:
{
"resource": "feed",
"action": "read"
}
Токен был сгенерирован с использованием библиотеки jjwt и подписан с использованием секрета, указанного на панели управления моей учетной записи. Я также проверил его на jwt.io и это был действительный знак
Url
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:
Чтобы выполнить правильную проверку разрешений, вам необходимо включить это feed_id
поле в полезную нагрузку вашего токена. Значение поля должно совпадать с каналом, который вы пытаетесь прочитать, и быть в форме ${feed_group}:${feed_id}
.
Например, полезная нагрузка для запроса в вашем вопросе (https://api.getstream.io/api/v1.0/feed/notification/666?api-key =) должно быть:
{
"resource": "feed",
"action": "read",
"feed_id": "notification:666"
}
URL-адреса API должны заканчиваться косой чертой (например, /api/v1.0/feed/notification/666/?api_key=…)
Аутентификация HTTP-заголовков:
Авторизация должна содержать только токен JWT
stream-auth-type должен быть отправлен со значением jwt
Комментарии:
1. Спасибо за быстрый ответ. Я также пробовал использовать feed_id, но это также выдавало ошибку. Но добавление завершающего / заставило его работать. Теперь я получаю это сообщение: «Подпись URL отсутствует или недействительна»