Django jwt使用

1.设计user model


from django.db import models
#引入系统用户的类
from django.contrib.auth.models import AbstractUser

# Create your models here.

#UserProfile继承AbstractUser分类,进行拓展
class UserProfile(AbstractUser):
    """
    用户类拓展
    """
    name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名" )
    avatar = models.CharField(max_length=100, null=True, blank=True, verbose_name="头像")
    role = models.CharField(max_length=10, verbose_name="角色")


    class Meta:
        verbose_name = "用户"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

2.在setting中添加

AUTH_USER_MODEL = ' users.UserProfile'
# users为新建的app

将UserProfile替换原来系统auth_user

3.创建数据库表,如果已经创建过user表,需要删除全部的数据库表,在执行下面的命令,否则会报错。

python manage.py makemigrations

python manage.py migrate

4.查看数据表的生产,可以看到数据表users_userprofile,可以看到增加的三个字段:

5.配置rest framework jwt

INSTALLED_APPS = [
    'rest_framework',
    'rest_framework.authtoken',
    'django_filters',
    'corsheaders'
]

MIDDLEWARE = [
    #设置浏览器跨域问题
    'corsheaders.middleware.CorsMiddleware',

]
#允许全部跨站点请求
CORS_ORIGIN_ALLOW_ALL = True

MIDDLEWARE = [
    #设置浏览器跨域问题
    'corsheaders.middleware.CorsMiddleware',

]
#允许全部跨站点请求
CORS_ORIGIN_ALLOW_ALL = True

6.配置JWT


REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        # 'rest_framework.authentication.TokenAuthentication',
        # 将token做验证
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    ),
}

# 设置过期时间
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
    'JWT_AUTH_HEADER_PREFIX': 'JWT',
}

 

 7.配置URL 登录的链接地址 api/user/login:

先创建超级管理员账号,然后配置url进行访问测试。

# 创建超级管理员密码加密代码
from django.contrib.auth.hashers import  make_password
self.password = make_password(raw_password)
from django.contrib import admin
from django.urls import path
from rest_framework_jwt.views import obtain_jwt_token
from django.conf.urls import url, include
urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^api/user/login', obtain_jwt_token),

]

8.在postman中测试API接口 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值