欢迎访问宙启技术站
智能推送

RESTFramework中Token认证的Python示例代码

发布时间:2023-12-24 13:13:28

REST Framework是一个用于构建API的强大框架,它提供了许多功能,例如认证、授权、序列化等。在REST Framework中,Token认证被用于验证API请求的合法性。下面是一个Python示例代码,展示了如何使用REST Framework的Token认证。

首先,需要安装djangorestframeworkdjango-rest-framework-simplejwt库。可以使用以下命令安装:

pip install djangorestframework
pip install djangorestframework-simplejwt

接下来,需要在Django的settings.py中进行一些配置。首先,将rest_frameworkrest_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端点。