一、使用默认的rest_framework_simplejwt实现登录功能
1.1 创建django空项目
#创建django项目
django-admin startproject login
# 进入login目录
cd login
#创建app
django-admin startapp user
#初始化数据库,默认使用SQLit3
python manage.py makemigrations
#创建表结构
python manage.py migrate
# 创建超级用户账号,用户名:root,密码:root,邮箱:root@qq.com
python manage.py createsuperuser
# 安装rest_framework和rest_framework_simplejwt
pip install rest_framework
pip install rest_framework_simplejwt
1.2 初始化项目
主要修改setting.py文件和login目录下的urls.py文件:
setting.py
INSTALLED_APPS = [
'rest_framework', # 新增
'rest_framework_simplejwt' # 新增
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
# 设置全局权限模式,用户认证通过可访问
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_AUTHENTICATION_CLASSES': [
# 使用默认的认证类的认证方式
'rest_framework_simplejwt.authentication.JWTAuthentication',
urls.py
from django.urls import path
from rest_framework_simplejwt.views import TokenRefreshView, TokenVerifyView, TokenObtainPairView
urlpatterns = [
path("login/", TokenObtainPairView.as_view(), name="token_obtain_pair"),
path("refresh/", TokenRefreshView.as_view(), name="token_refresh"),
path("verify/", TokenVerifyView.as_view(), name="token_verify"),
]
这三个接口分别是登录、获取新的token、验证token是否有效
TokenObtainPairView.as_view(),这个接口登录成功后会返回:访问令牌和有效令牌。
urls.py
path("test/", TestView.as_view(), name="xx"),
views.py 设置
from rest_framework.views import APIView from rest_framework.response import Response class TestView(APIView): def post(self, request, *args, **kwargs): s = str(request.user.__dict__) data = { 'status': s, 'message': '的点点滴滴-----Hello, this is the ziapi endpoint!' } return Response(data)