gpt4 book ai didi

javascript - 带有只读 token 的 Getstream.io "Not authenticated"

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:02 25 4
gpt4 key购买 nike

我正在使用 django getstream.io 客户端。我的后端代码如下所示,它生成一个只读 token 并将其与我在成功登录时发送的 jwt token 一起存储在响应中。此代码位于我的 settings.py 文件的底部,其中包含 STREAM_API_SECRET 和 STREAM_API_KEY key 设置。这些也在我的 settings.py 中,并且与我的 getstream.io 仪表板中的内容相匹配。

from stream_django.client import stream_client
def jwt_response_payload_handler(token, user=None, request=None):
user_feed_1 = stream_client.feed('user', str(user.id))
readonly_token = user_feed_1.get_readonly_token()
return {
'token': token,
'stream': str(readonly_token)
}

在前端, token 是从包含流 token 的登录响应中正确获取的。它试图设置一个实时流,但是当它连接时我得到一个“未验证错误”。我已经确认,传递给以下客户端函数的 token 与上面生成的 token 匹配。

function setupStream (token, id) {
var client = stream.connect(STREAM_API_KEY, null, STREAM_APP_ID)
var user1 = client.feed('user', id, token)

function callback (data) {
console.log(data)
}

function failCallback (data) {
alert('something went wrong, check the console logs')
console.log(data)
}

user1.subscribe(callback).then(() => {}, failCallback)
}

我不确定自己做错了什么,因为据我所知一切都已正确设置。 token 和用户 ID 与前端和后端的匹配。

我正在按照文档中的内容进行操作,但它不起作用: https://getstream.io/docs/#readonly-tokens

当我在控制台中尝试以下操作时:

  user1.get({ limit: 5, offset: 0 })
.then(callback)
.catch(failCallback)

我从中得到的确切错误响应正文是:

{
"code": null,
"detail": "url signature missing or invalid",
"duration": "7ms",
"exception": "AuthenticationFailed",
"status_code": 403
}

编辑:

似乎通过改变:get_readonly_token() 到 .token,创建读/写 token ,客户端代码有效。只读 token 不起作用吗?

最佳答案

事实证明,我错误地解码了 read_only 标记。将后端代码更改为以下解决了我的问题;

 'stream': readonly_token.decode("utf-8")

关于javascript - 带有只读 token 的 Getstream.io "Not authenticated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37076861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com