0

Djoser 登录 api 返回用户令牌,我也想返回用户角色。如何实施这样的案例?下面是登录方法:

def login_user(request, user):
    token, _ = settings.TOKEN_MODEL.objects.get_or_create(user=user)
    if settings.CREATE_SESSION_ON_LOGIN:
        login(request, user)
    user_logged_in.send(sender=user.__class__, request=request, user=user)
    return token

我的目标是实现以下目标:

def login_user(request, user):
    token, new_user = settings.TOKEN_MODEL.objects.get_or_create(user=user)
    if not new_user:
        token_and_roles = {
            token: token,
            roles: [for group.lower() in User.objects.get(user).groups]
        }
        return token_and_roles
    if settings.CREATE_SESSION_ON_LOGIN:
        login(request, user)
    user_logged_in.send(sender=user.__class__, request=request, user=user)
    return token

如何覆盖 djoser api 登录方法?

4

1 回答 1

0

请参考djoser 序列化器设置文档- 您需要编写自己的 TokenSerializer 版本,然后在您的设置中进行设置:

DJOSER = {
    "SERIALIZERS": {"token": "myapp.serializers.MyTokenSerializer"},
}
于 2019-07-23T08:07:19.677 回答