zoukankan      html  css  js  c++  java
  • 认证组件

    urls.py

    urlpatterns = [   
        url(r'^user$',UserView.as_view()),     # 在数据空中写入username和token
        url(r'^test',TestAuthView.as_view()),  # 认证测试视图   http://127.0.0.1:8000/test?token=20609ddd01fe4faeb0ffe7d8d8c39881
    ]

     

    视图

    from django.shortcuts import render
    from rest_framework.views import APIView
    from rest_framework.response import Response
    from .models import UserInfo
    from utils.Auth import MyAuth
    import uuid
    
    # Create your views here.
    
    class UserView(APIView):
        def post(self, request):
            # 这相当于注册
            username = request.data["username"]
            UserInfo.objects.create(username=username, token=uuid.uuid4())
            return Response("ok")
    
    
    class TestAuthView(APIView):
        authentication_classes = [MyAuth,]
        # 这相当于登录的认证
        def get(self, request):
            print(request.user)
            print(request.auth)
            return Response("认证测试")
    

      

    自己写的认证类

    from rest_framework.authentication import BaseAuthentication
    from rest_framework.exceptions import AuthenticationFailed
    from AuthDemo.models import UserInfo
    from rest_framework.response import Response
    
    
    class MyAuth(BaseAuthentication):
        def authenticate(self, request):
            # 第一步先拿到前端传过来的token
            token = request.query_params["token"]
            # 验证token是否存在
            user_obj = UserInfo.objects.filter(token=token).first()
            if user_obj:
                return (user_obj, token)
            else:
                raise AuthenticationFailed("认证失败")
    

      

     

  • 相关阅读:
    Spring (4)框架
    Spring (3)框架
    Spring (2)框架
    javaSE面试题总结 java面试题总结
    分层结构
    三次握手
    17_网络编程
    16_多线程
    Ecplise中指定tomcat里Web项目发布文件
    Web 项目没有发布到我们安装的tomcat目录下
  • 原文地址:https://www.cnblogs.com/perfey/p/9959771.html
Copyright © 2011-2022 走看看