Ошибка доступа к Stream REST Api с использованием JWT

#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 отсутствует или недействительна»