美文网首页Django
Django JWT开发接口

Django JWT开发接口

作者: whong736 | 来源:发表于2019-01-05 22:07 被阅读24次

1.创建的后端的用户注册register接口

#新建用户接口 get
/api/user/register

#传入字段名:

id   ID 
user_name  用户名
password  密码
role  角色
avatar  用户头像

2.创建用户登录接口 login

#用户登录接口 post
/api/user/login
#传入字段名:

user_name
password

#返回字段
token

3.查询用户信息info

查询用户信息info get
/api/user/info

传入字段:
token

通过token查询出userid通过外键关联查询出用户的信息

返回字段:
id   ID 
user_name  用户名
password  密码
role  角色
avatar  用户头像


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

image.png

2.在setting中添加

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

才能将UserProfile替换原来系统auth_user

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

makemigrations

migrate
image.png

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


5.配置rest framework jwt

import datetime
INSTALLED_APPS = [
    'rest_framework',
    'rest_framework.authtoken',
    'django_filters',
    'corsheaders'
]
MIDDLEWARE = [
    #设置浏览器跨域问题
    'corsheaders.middleware.CorsMiddleware',

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

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',
}
image.png

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

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

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),

]

image.png

8.在postman中测试API接口

image.png

相关文章

网友评论

    本文标题:Django JWT开发接口

    本文链接:https://www.haomeiwen.com/subject/lrolrqtx.html