安装JWT后如何启用API的身份验证?
时间: 2024-12-19 13:23:19 浏览: 5
SpringBoot Security整合JWT授权RestAPI的实现
在安装并配置好JWT之后,为了在API中启用JWT的身份验证,你需要在视图函数中检查请求是否携带有效的JWT token。在Django Rest Framework中,可以这样做:
1. 首先,在需要保护的视图上添加权限装饰器,如`@permission_classes([AllowAny])`来允许未授权访问,然后使用`@api_view`或`@action`装饰器:
```python
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ProtectedEndpoint(APIView):
permission_classes = [IsAuthenticated] # 或者使用 AllowAny 来仅做验证,不做权限控制
def get(self, request):
# 检查用户是否已通过JWT登录
if not request.user.is_authenticated():
return Response({"detail": "Unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
# 进行你的业务操作...
```
2. 当请求到达时,`IsAuthenticated`中间件会自动检查JWT。如果请求头(`Authorization`)包含有效的JWT(`Bearer your_token`格式),用户将被视为已登录。
3. 如果在处理请求时,你想要从JWT中获取用户信息,可以在`request.user`中找到。注意,这是基于JWT认证后的用户数据,而不是常规的Django User模型。
阅读全文