你好Django社区,
我想在用户验证身份时将电子邮件和用户ID连同令牌一起发送回去。我想我必须更改UserLoginApiView类,但是我不知道如何重写ObtainAuthToken类来实现这一点。
有人建议这样做会很有帮助吗?
class UserLoginApiView(ObtainAuthToken):
"""Handle creating user authentication tokens"""
renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES
这是我在Github上的全部代码:https://github.com/KrestouferT/profiles-rest-api
答案 0 :(得分:0)
在docs中,它表明您可以在ObtainAuthToken中覆盖发布请求的返回响应:
如果需要自定义版本的gain_auth_token视图,则可以 通过子类化ObtainAuthToken视图类并使用 而是在您的url conf中。
例如,您可以返回除 令牌值:
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
class CustomAuthToken(ObtainAuthToken):
def post(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data,
context={'request': request})
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
return Response({
'token': token.key,
'user_id': user.pk,
'email': user.email
})
在您的urls.py中:
urlpatterns += [
url(r'^api-token-auth/', CustomAuthToken.as_view())
]