使用django的自己用户模块

  1. 建⽴model( from django.contrib.auth.models import AbstractUser )

  2. settings指定模型类( AUTH_USER_MODEL )

  3. 迁移⽣成数据库(原来⽣成过这些表的,需要删除所有的表进⾏重新⽣成)

使用DRF-JWT来做登陆注册以及状态保持

  1. pip install djangorestframework-jwt
  • 配置seetings

    1. INSTALLED_APPS

      INSTALLED_APPS = [
          'rest_framework.authtoken',
      ]

    2. REST_FRAMEWORK

      REST_FRAMEWORK = {
          # 身份认证
          'DEFAULT_AUTHENTICATION_CLASSES': (
              'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
              'rest_framework.authentication.SessionAuthentication',
              'rest_framework.authentication.BasicAuthentication',
      # 全局配置JWT验证设置
      'DEFAULT_PERMISSION_CLASSES': (
                  'rest_framework.permissions.IsAuthenticated',
      }

    3. JWT_AUTH

      JWT_AUTH = {
          'JWT_AUTH_HEADER_PREFIX': 'JWT',
          'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
          'JWT_RESPONSE_PAYLOAD_HANDLER':
              'jwtuserapp.views.jwt_response_payload_handler',  # 重新login登录返回函数
      }

  • 写注册生成token的代码

    1. 使用django的用户模型类

    2. 密码要密文

    3. 生成token并返回到前端

  • 登陆生成token的代码

    1. url里导包,并指定url

    2. view里写返回的数据有那些

    3. seetings里配置并告知django

  • 权限的分离

    1. 导包(from rest_framework.permissions import IsAuthenticated, AllowAny)

    2. APIview里设置permission_classes

  • 使用django的自己用户模块 建⽴model( from django.contrib.auth.models import AbstractUser ) settings指定模型类( AUTH_USER_MODEL ) 迁移⽣成数据库(原来⽣成过这些表的,需要删除所有的表进⾏重新⽣成) 使用DRF-JWT来做登陆注册以及状态保持 下载依赖 pip install djangorestframework-jwt 配置seetings
    JWT 原理 playload 载荷就是存放有效信息的地方,这个里面可以配置一些参数已经我们需要进行加密的数据字典。一般情况下只需要存放我们的数据和设置一个过期时间就可以了 根据当前时间设置一分钟后过期 datetime.datetime.utcnow() + datetime.timedelta(minutes=1) 1.iss: jwt 签发者 sub: jwt 所面向的用户 aud: 接收 jwt 的一方 exp: jwt 的过期时间,这个过期时间必须要大于签发时间 nbf: 定义在什么时间之前,该 jwt
    一、基于传统的 token 认证 基于传统的 token 认证流程:用户登录,服务端给返回的token,并将token保存在服务端,以后再来访问时,需要携带token,服务器获取token后,再去数据库中获取token来进行校验。 注册 DRF 应用 在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP是无 状态 的协议,当我们通过帐号密码验证一个用户时,下一个request请求时就把刚刚的用户忘了。于是我们就无法确认该用户的情况,就要再验证一次。所以为了保证系统安全,我们就需要验证用户否处于登录 状态 。 前后端分离通过Restful API进行数据交互时,如何验证用户的登录信息及权限。在原来的项目中,使用的是最传统也是最简单的...
    实现登录 状态 保持 的方法 方法一:cookie和session配合使用 首先,用户登录输入用户名和密码,浏览器发送post请求,服务器后台获取用户信息,查询数据库验证用户信息是否正确。如果验证通过,就会创建session来存储相关信息,并且生成一个cookie字符串,把sessionID放在cookie里面。然后返回给浏览器。 当用户下一次发起请求时,浏览器会自动携带cookie去请求服务器,服务器...
    class UserSignupSerializer(serializers.ModelSerializer): password = serializers.CharField(write_only=True) confirm_password = serializers.CharField(write_only=True) code = serializers.CharField REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authent pip install django django -cors-headers django restframework django restframework- jwt 项目配置信息 django demo/settings.py