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
![](https://img.haomeiwen.com/i3245733/b24031815ed3e60d.png)
2.在setting中添加
AUTH_USER_MODEL = ' users.UserProfile'
# users为新建的app
才能将UserProfile替换原来系统auth_user
![](https://img.haomeiwen.com/i3245733/8a5302e07d4e4898.png)
3.创建数据库表,如果已经创建过user表,需要删除全部的数据库表,在执行下面的命令,否则会报错。
makemigrations
migrate
![](https://img.haomeiwen.com/i3245733/52d647c9d3f4af66.png)
4.查看数据表的生产,可以看到数据表users_userprofile,可以看到增加的三个字段:
![](https://img.haomeiwen.com/i3245733/25cddc46eefbc7c1.png)
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
![](https://img.haomeiwen.com/i3245733/10e25cef10fda15f.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',
}
![](https://img.haomeiwen.com/i3245733/25c3f858542887a5.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),
]
![](https://img.haomeiwen.com/i3245733/e34c70249d7ae523.png)
8.在postman中测试API接口
![](https://img.haomeiwen.com/i3245733/1ecef89a44a79486.png)
网友评论