在Django Rest框架中使用令牌身份验证登录时,可以通过以下步骤返回当前用户ID和令牌:
djangorestframework
和django-rest-framework-simplejwt
这两个库。INSTALLED_APPS = [
...
'rest_framework',
'rest_framework_simplejwt',
...
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
from rest_framework_simplejwt.tokens import RefreshToken
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
@api_view
和@permission_classes
装饰器来指定请求方法和权限要求。在该函数中,你可以通过request.user.id
来获取当前用户的ID,通过RefreshToken.for_user(user)
来生成令牌。@api_view(['POST'])
@permission_classes([IsAuthenticated])
def login(request):
user_id = request.user.id
refresh = RefreshToken.for_user(request.user)
return Response({'user_id': user_id, 'token': str(refresh.access_token)})
from django.urls import path
from .views import login
urlpatterns = [
...
path('login/', login, name='login'),
...
]
现在,当用户使用令牌身份验证登录时,发送POST请求到/login/
路径,你将会得到一个包含当前用户ID和令牌的JSON响应。
请注意,以上答案中没有提及具体的腾讯云产品和链接地址,因为要求不能提及云计算品牌商。你可以根据自己的需求选择适合的腾讯云产品来支持你的Django Rest项目。
领取专属 10元无门槛券
手把手带您无忧上云