簡體   English   中英

使用 Django Rest + Djoser 返回的不僅僅是 Auth 令牌?

[英]Return more than just the Auth Token with Django Rest + Djoser?

我使用 Django REST 和 Djoser 作為我的身份驗證服務。 但是,當向 djoser auth 端點發出 post 請求時,例如.../auth/token/login ,我得到的唯一響應是auth_token: xxxxx

例如,如果我發出成功的 post 請求,例如:

{
  "username": "joe@gmail.com",
  "password": "test12345"
}

我的回應將是

"auth_token": "XXXXXXXX"

但我想檢索的不僅僅是一個令牌,例如

"auth_token": "XXXXXXXX",
"user_id": 8

關於如何做到這一點的任何想法?

創建您自己的自定義令牌獲取視圖如下,

from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token


class TokenObtainView(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) custom_response = { 'token': token.key, 'user_id': user.id } return Response(custom_response)

然后在你的urls.py連接你的TokenObtainView

urlpatterns = [
    # other patterns
    path('path/to/your/custom/token/view/', views.TokenObtainView.as_view(), name='new-token,obtain-view')
]

現在,您應該使用端點path/to/your/custom/token/view/來獲取自定義響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM