You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Quickblox JavaScript SDK发起登录/入群请求返回授权错误如何解决

QuickBlox JavaScript SDK 请求头缺失QB-Token 401错误解决方案

场景1:使用SDK原生封装接口请求

正常情况下SDK创建会话成功后会自动将token存入内部缓存,后续原生接口请求会自动携带QB-Token请求头,无需手动配置。出现缺失问题按以下步骤处理:

  • 检查会话创建逻辑是否正确,不要在会话创建的异步回调完成前发起后续请求
  • 若token由服务端生成后返回给前端,需手动将token写入SDK缓存:
// 初始化SDK需全局仅执行一次,重复初始化会清空已存储的token
import QB from 'quickblox'
QB.init(你的APP_ID, 你的AUTH_KEY, 你的AUTH_SECRET, 你的ACCOUNT_KEY)

// 手动设置token到SDK缓存
QB.service.setSession({
  token: '实际获取的QB-Token字符串',
  user_id: 对应用户的ID // 调用用户相关接口时必填
})

设置完成后所有SDK原生的登录、聊天连接、消息发送等接口都会自动携带QB-Token请求头。

场景2:自定义调用QuickBlox REST API

如果未使用SDK封装方法,自行通过axios、fetch等工具发起请求,需要手动在请求头中添加QB-Token字段:

  • axios示例:
axios({
  method: 'GET',
  url: 'https://api.quickblox.com/chat/Dialog.json',
  headers: {
    'QB-Token': '实际获取的QB-Token字符串'
  }
})
  • fetch示例:
fetch('https://api.quickblox.com/chat/Dialog.json', {
  method: 'GET',
  headers: {
    'QB-Token': '实际获取的QB-Token字符串'
  }
})

常见问题排查

  • 确保SDK全局仅初始化一次,重复执行QB.init会清空已存储的token信息
  • 跨页面、跨路由跳转场景需将token存入localStorage/sessionStorage,页面初始化时调用QB.service.setSession重新写入SDK缓存
  • 检查浏览器控制台的请求头,确认QB-Token字段是否正常携带,若仍为空可打印QB.service.getSession()查看SDK内部是否已存储有效token

内容的提问来源于stack exchange,提问作者Hayk Shahinyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:36:03