当前位置: 首页 > news >正文

试用网站空间室内设计师资格证报考条件

试用网站空间,室内设计师资格证报考条件,如何看网站的关键词,深圳跑网约车怎么样介绍 创建系统管理app#xff0c;用于管理系统的用户#xff0c;角色#xff0c;权限#xff0c;登录等功能#xff0c;项目中将使用django-rest_framework进行用户认证和权限解析。这里将完成用户认证 用户验证 rest_framework.authentication模块中的认证类#xff…介绍 创建系统管理app用于管理系统的用户角色权限登录等功能项目中将使用django-rest_framework进行用户认证和权限解析。这里将完成用户认证 用户验证 rest_framework.authentication模块中的认证类例如 session认证SessionAuthentication基于session token 认证TokenAuthenticationAPI Token 自定义认证BasicAuthenticationHTTP Basic Auth 这里采用djangorestframework-simplejwt设计自定义认证类和自定义登录 pip install djangorestframework-simplejwt创建用户模型表user from django.db import models from django.contrib.auth.hashers import make_password, check_password# Create your models here.class User(models.Model):username models.CharField(max_length255, uniqueTrue, verbose_name手机号)password models.CharField(max_length255, uniqueFalse, verbose_name密码)is_vip models.BooleanField(defaultFalse,verbose_name是否为vip)vip_expires_at models.DateTimeField(auto_now_addTrue,verbose_namevip过期时间)is_active models.BooleanField(defaultTrue)class Meta:db_table userverbose_name 用户账号表verbose_name_plural verbose_name数据库迁移 python manage.py makemigrations python manage.py migrate 在根目录下创建utils目录在utils目录中创建文件Authentication.py和jwt.py ## Authentication.pyfrom rest_framework_simplejwt.serializers import TokenObtainPairSerializer from rest_framework_simplejwt.views import TokenObtainPairView from rest_framework import serializers from user.models import User# 自定义认证类 class MyTokenObtainPairSerializer(TokenObtainPairSerializer):自定义登录认证使用自有用户表username、password这两个字段为必传字段因为 DRF 要检查这些字段是否有效username_field phone_number 这是重命名了username必传字段设置为了phone_number字段必传phone_number serializers.CharField(requiredFalse) # 这个是设置了自定义的字段是否必传def validate(self, attrs):username attrs.get(username)password attrs.get(password)if not username or not password:raise serializers.ValidationError(phone_number and password are required)try:user User.objects.get(usernameusername, passwordpassword)except User.DoesNotExist:raise serializers.ValidationError(No user found with this username and password.)print(user)refresh self.get_token(user)data {userId: user.id, token: str(refresh.access_token), refresh: str(refresh),is_vip: user.is_vip}return dataclass MyTokenObtainPairView(TokenObtainPairView):serializer_class MyTokenObtainPairSerializer## jwt.py from rest_framework_simplejwt.authentication import JWTAuthentication from rest_framework_simplejwt.exceptions import InvalidToken, AuthenticationFailed from django.utils.translation import gettext_lazy as _ # 自定义的用户模型 from user.models import Userclass MyJWTAuthentication(JWTAuthentication):修改JWT认证类返回自定义User表对象def get_user(self, validated_token):try:user_id validated_token[user_id]except KeyError:raise InvalidToken(_(Token contained no recognizable user identification))try:user User.objects.get(**{id: user_id})except User.DoesNotExist:raise AuthenticationFailed(_(User not found), codeuser_not_found)return user在settings.py同级目录下创建drf_settings.py 并引入settings.py 中 ## drf_settings.py REST_FRAMEWORK {DEFAULT_PERMISSION_CLASSES: [rest_framework.permissions.IsAuthenticated,],DEFAULT_AUTHENTICATION_CLASSES: [utils.jwt.MyJWTAuthentication # 认证方式为自定义的认证类], }引入settings中 import drf_settings REST_FRAMEWORK drf_settings.REST_FRAMEWORK创建一个app:userauth在views.py中写入一个接口视图 from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response# Create your views here.class UserTestView(APIView):def post(self, request,*args, **kwargs):s str(request.user.__dict__)return Response(s)在app:userauth:urls中设置路由 from django.urls import path, include from rest_framework import routers from rest_framework_simplejwt.views import TokenVerifyView, TokenRefreshView from utils.authentication import MyTokenObtainPairView from userauth.views import UserTestViewrouter routers.DefaultRouter()urlpatterns [path(login/, MyTokenObtainPairView.as_view()), # 登录path(refresh/, TokenRefreshView.as_view(), nametoken_refresh), # 刷新tokenpath(verify/, TokenVerifyView.as_view(), nametoken_verify), # 验证tokenpath(test/, UserTestView.as_view(), nametest) ] urlpatterns.append(path(, include(router.urls)))这里没有写注册功能所以只有手动在数据库中创建一个用户 使用postman进行登录测试 刷新token测试 接口测试 参考链接https://blog.csdn.net/qq_42410176/article/details/130568130?spm1001.2014.3001.5502
http://www.w-s-a.com/news/723392/

相关文章:

  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设
  • 国外外贸需求网站响应式布局网页
  • 手机端便民服务平台网站建设昆明网络哪家好
  • 产品网站建设找哪家舟山信息港
  • 唐山网站建设汉狮怎么样seol英文啥意思
  • 深圳小程序网站开发公司网页制作模板视频教程
  • 电子商务网站开发开题报告wordpress更改后台地址
  • 网站静态前端是什么工作
  • 餐饮门户网站 方案怎么做创业好项目
  • 做百度手机网站推广普通话的宣传标语
  • 记事本可以做网站吗网站服务器是主机吗
  • 手机网站被拦截怎么办怎么解决东营建设信息网网
  • 外贸网站模板免费微信网站开发技术
  • 视频盗版网站怎么做福州网站seo
  • 成都金铭 网站建设做网站包含的技术
  • 长沙的网站建设公司哪家好做网站应选那个主题
  • 公司网站百度搜不到如何自己做一个网站
  • 学生如何建设网站网站开发程序
  • 网站建设公司哪家好 皆来磐石网络网站建设"淘宝网" 在颜色选取和搭配方面有哪些值得学习的地方.