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

如何从Djoser的/users/me端点获取用户数据,报403错误如何解决?

排查和解决步骤:

  • 首先检查REST_FRAMEWORK全局配置中的认证类
    你当前贴出的配置只包含了DJOSER项,绝大多数403问题都是遗漏了这部分配置,需要在settings.py中补充对应认证后端:
    REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': (
            # 如果你用JWT认证,保留这行,需要提前安装djangorestframework-simplejwt
            'rest_framework_simplejwt.authentication.JWTAuthentication',
            # 如果你用Django默认Token认证,保留这行
            # 'rest_framework.authentication.TokenAuthentication',
        ),
    }
    
  • 确认账户已激活
    你的DJOSER配置开启了SEND_ACTIVATION_EMAIL,用户注册完成后默认is_active状态为False,未完成邮箱激活的账户请求所有受保护接口都会返回403。你可以先在Django后台对应用户表中把目标用户的is_active字段改为True测试,验证是激活问题后再调整邮件发送流程即可。
  • 确认请求头格式和令牌正确性
    • 认证前缀要和你用的认证类严格对应:JWT认证前缀为Bearer,默认Token认证前缀为Token,不需要用JWT作为前缀
    • 前缀和令牌中间必须有一个半角空格,不要额外加引号、换行等符号
    • 注意不要拿refresh token请求接口,必须使用接口返回的access token
  • 检查权限配置
    确认没有全局覆盖REST_FRAMEWORK的DEFAULT_PERMISSION_CLASSES为非登录即可访问的规则,DJOSER默认的/users/me/接口权限为isAuthenticated,没有自定义修改PERMISSIONS项的情况下默认配置是正确的。
  • 测试示例(以JWT为例):
    curl -H "Authorization: Bearer 你获取到的access_token" http://你的服务地址/auth/users/me/
    

内容的提问来源于stack exchange,提问作者C-Bizz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:07