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

Vue集成Directus SDK调用calibers集合出现403权限错误求助

Directus SDK调用接口返回403 Forbidden排查方案

核心问题

登录页面可正常登录,但使用Directus SDK调用GET /items/calibers时返回403,错误提示「无权限访问集合calibers或集合不存在」。Chrome直接访问、Postman用同账号调用均正常,仅SDK调用失败。

排查方向

1. 确认SDK客户端是否携带登录凭证

你的测试代码未附加认证逻辑,登录后的会话凭证未被SDK复用。Directus SDK需显式处理认证状态:

  • 方案一:添加authentication()插件并主动登录
<script setup>
import { ref, onMounted } from 'vue'
import { createDirectus, rest, readItems, authentication, login } from '@directus/sdk'

// 配置带认证的客户端
const client = createDirectus('http://127.0.0.1:8055/')
  .with(rest())
  .with(authentication());

const retval = ref([])

onMounted(async () => {
  try {
    // 先完成登录(若未通过页面登录)
    await client.request(login({
      email: '你的admin邮箱',
      password: '你的admin密码'
    }));
    
    const response = await client.request(readItems('calibers'))
    console.log('Full response:', response)
    retval.value = response
  } catch (error) {
    console.error('Error fetching:', error)
  }
})
</script>
  • 方案二:复用浏览器已有会话(页面已登录场景)
    创建客户端时需配置credentials: 'include',确保浏览器传递登录Cookie:
const client = createDirectus('http://127.0.0.1:8055/', { credentials: 'include' })
  .with(rest())
  .with(authentication());

2. 验证集合权限配置

即使是Admin账号,仍需确认:

  • 进入Directus后台「设置」→「集合」→ 找到calibers集合 → 「权限」标签页,确认Admin角色对该集合的读取权限已开启(设置为「允许所有」或单独开启读取)。
  • 若尝试未登录访问,需检查集合的「公开权限」是否开启读取,但你的场景是登录后访问,重点关注用户角色权限。

3. 检查凭证传递与CORS配置

Docker已设置CORS_CREDENTIALS: 'true',需额外确认:

  • 浏览器请求是否携带Cookie:在Chrome开发者工具「网络」面板查看/items/calibers请求头,确认包含Cookie字段(含Directus会话token)。
  • SDK客户端必须配置credentials: 'include',否则浏览器不会主动传递跨域Cookie。

4. 确认SDK与服务器版本兼容性

你使用@directus/sdk@17.0.0,需保证Directus服务器版本与SDK版本完全一致。版本不匹配会导致认证、接口兼容性问题:

  • 访问http://127.0.0.1:8055/查看页面底部的服务器版本,若不一致,升级/降级SDK或服务器版本。

5. 排查会话状态有效性

  • 检查浏览器Cookie中是否存在directus_session或directus_refresh_token,若不存在说明登录凭证未正确存储。
  • 调用SDK接口前验证会话状态:
const { me } = await client.request(me());
console.log('当前登录用户:', me);

若返回未登录状态,说明SDK客户端未正确获取会话。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:54:52