如何从 djoser 端点(.../users/me)检索用户数据
Posted
技术标签:
【中文标题】如何从 djoser 端点(.../users/me)检索用户数据【英文标题】:How to retrieve user data from djoser endpoint (.../users/me) 【发布时间】:2021-12-26 08:29:13 【问题描述】:如何使用 djoser url /users/me/
检索用户信息?我尝试按照本文档中的示例进行操作,但没有任何结果,我不断收到 403 禁止。我在授权标头中使用了Bearer, JWT, and Token
,但它们都不起作用。
https://djoser.readthedocs.io/en/latest/base_endpoints.html
SETTINGS.PY
DJOSER =
'LOGIN_FIELD': 'email',
'USER_CREATE_PASSWORD_RETYPE': True,
'USERNAME_CHANGED_EMAIL_CONFIRMATION': True,
'PASSWORD_CHANGED_EMAIL_CONFIRMATION': True,
'SEND_CONFIRMATION_EMAIL': True,
'SET_USERNAME_RETYPE': True,
'SET_PASSWORD_RETYPE': True,
'PASSWORD_RESET_CONFIRM_URL': 'password/reset/confirm/uid/token',
'USERNAME_RESET_CONFIRM_URL': 'email/reset/confirm/uid/token',
'ACTIVATION_URL': 'activate/uid/token',
'SEND_ACTIVATION_EMAIL': True,
'SERIALIZERS':
'user_create': 'accounts.serializers.UserCreateSerializer',
'user': 'accounts.serializers.UserCreateSerializer',
'current_user': 'accounts.serializers.UserCreateSerializer',
'user_delete': 'djoser.serializers.UserDeleteSerializer',
【问题讨论】:
添加您的REST_FRAMEWORK
设置
@shafik,请检查,我在 settings.py 中添加了 djoser 设置
你加了REST_FRAMEWORK = 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', (...) ),
是的,我在设置中添加了身份验证类
你的问题解决了吗?
【参考方案1】:
通过从 djoser UserSerializer 继承为用户创建新的 UserSerializer 类
并添加设置
'SERIALIZERS': 'user': 'accounts.serializers.UserSerializer', 'current_user': 'accounts.serializers.UserSerializer'
【讨论】:
以上是关于如何从 djoser 端点(.../users/me)检索用户数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Djoser 和 Rest Framework 中使用自定义字段注册用户
/auth/jwt/refresh decode() 的 TypeError 使用 Djoser 获得了意外的关键字参数“验证”