我们使用来自第三方公司的视频通话/聊天服务,我们创建令牌和频道名称以在我们的平台中使用他们的聊天服务。在我们的FE向BE请求凭据(令牌和通道名称(后,端点响应返回令牌和通道名信息。第三方系统不会为特定的频道名称创建令牌,因此很有可能获得一个聊天令牌,只要你知道或猜测聊天频道名称,你就可以加入并自由发送文本。为了防止这种情况发生,我们要对发送到FE的响应中的通道名称进行哈希/加密,这样实际的通道名称就不会以明文形式显示。
最好的方法是什么?
BE:DjangoFE:Vue.js
感谢
您可以使用python的内置lib:hmac。一个例子:
CHAT_SERVICE_SECRET_KEY是您在设置中设置的密钥。py
hashed_channel_name = hmac.new(
settings.CHAT_SERVICE_SECRET_KEY.encode('utf8'),
channel_name.encode('utf8'),
channel_token.encode('utf8'),
digestmod=hashlib.sha256
).hexdigest()
这个值可以是前端的响应。