RESTFramework中Token认证的Python示例代码
发布时间:2023-12-24 13:13:28
REST Framework是一个用于构建API的强大框架,它提供了许多功能,例如认证、授权、序列化等。在REST Framework中,Token认证被用于验证API请求的合法性。下面是一个Python示例代码,展示了如何使用REST Framework的Token认证。
首先,需要安装djangorestframework和django-rest-framework-simplejwt库。可以使用以下命令安装:
pip install djangorestframework pip install djangorestframework-simplejwt
接下来,需要在Django的settings.py中进行一些配置。首先,将rest_framework和rest_framework_simplejwt添加到INSTALLED_APPS中:
INSTALLED_APPS = [
...
'rest_framework',
'rest_framework_simplejwt',
...
]
然后,将以下配置添加到settings.py末尾:
# Token认证的配置
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
现在,可以开始编写API视图和URL了。下面是一个简单的例子:
# views.py
from rest_framework import views
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
class ExampleView(views.APIView):
permission_classes = [IsAuthenticated]
def get(self, request, format=None):
content = {'message': 'Hello, World!'}
return Response(content)
# urls.py
from django.urls import path
from .views import ExampleView
urlpatterns = [
path('example/', ExampleView.as_view()),
]
在上面的例子中,ExampleView是一个继承自APIView的视图类。使用permission_classes属性指定了需要进行认证的权限,这里使用了IsAuthenticated权限类。
现在,可以运行Django服务器,并尝试通过以下命令获取API的响应:
curl -H 'Authorization: Bearer <token>' http://localhost:8000/example/
在上面的命令中,<token>是用户的Token值。
如果Token验证成功,将返回以下响应:
{
"message": "Hello, World!"
}
否则,将返回401 Unauthorized错误。
上面的代码展示了如何使用REST Framework的Token认证。在实际应用中,可以将Token分配给已经通过身份验证的用户,并在每个API请求中使用它来验证用户的身份。这样,只有拥有有效Token的用户才能访问受保护的API端点。
