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

Node.js中通过已认证用户创建团队无法获取auth.user问题求助

排查解决步骤

你当前使用的是AdonisJS框架,配置auth中间件后无法获取认证用户可按以下顺序操作:

  • 确认路由中间件配置正确
    检查路由定义是否确实绑定了auth中间件,正确写法示例:
    Route.post('/teams', 'TeamsController.store').middleware('auth')
    
    如果你使用多guard认证(比如同时存在api、session两种认证模式),需要明确指定guard,比如middleware('auth:api')。
  • 确认请求携带了有效认证凭证
    如果使用API令牌认证,请求头必须携带正确的Authorization: Bearer <登录接口返回的有效令牌>,令牌过期、前缀拼写错误、漏传都会导致认证失效,无法拿到用户信息。
  • 代码侧补充主动认证校验
    即使配置了全局中间件,也建议在业务代码中主动调用auth.authenticate()触发认证校验,校验失败会直接抛出异常,校验通过即可正常获取用户信息。修改后的代码如下:
    public async store({ request, auth, response }: HttpContextContract) {
          // 主动触发认证校验,确保拿到已登录用户
          const user = await auth.authenticate()
          const validations = await schema.create({
              name: schema.string({}),
              size: schema.string({}),
          })
          const data = await request.validate({ schema: validations })
          // 如需关联团队和创建用户,补充userId字段赋值
          const team = await Team.create({
            ...data,
            userId: user.id
          })
          return response.created(team)
      }
    
  • 确认模型和表结构关联正常
    检查Team模型是否正确定义了和User模型的关联,teams表是否存在对应user_id外键字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:45:08