首页 > 其他分享 >def 认证组件

def 认证组件

时间:2023-02-06 20:46:26浏览次数:54  
标签:username models rest 认证 token user 组件 import def

目录

drf 认证组件

登录接口

views

from rest_framework.viewsets import ViewSet
from rest_framework.decorators import action
from .models import User,UserToken
from rest_framework.response import Response
import uuid
class UserView(ViewSet):
    @action(methods=['POST'],detail=False)
    def login(self,request):
        username = request.data.get('username')
        password = request.data.get('password')
        user = User.objects.filter(username=username).first()
        if user:
            # 如果存在生成一个人随机字符串
            token = uuid.uuid4()
            UserToken.objects.update_or_create(user=user,defaults={'token':token})
            return Response({'code': '100', 'msg': '登陆成功','token':token})
        else:
            return Response({'code':'101','msg':'用户名或密码错误'})

models

from django.db import models

# Create your models here.
class User(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

    user_token = models.OneToOneField(to='UserToken',on_delete=models.CASCADE,null=True)
class UserToken(models.Model):
    token = models.CharField(max_length=32)

urls

from django.contrib import admin
from django.urls import path,include
from rest_framework.routers import SimpleRouter
from app01 import views

router = SimpleRouter()
router.register('user',views.UserView,'user')

from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/',include(router.urls))
]

标签:username,models,rest,认证,token,user,组件,import,def
From: https://www.cnblogs.com/LiaJi/p/17096638.html

相关文章