1.rest_framework配置
1.安装:
pip install djangorestframework
2.setting配置
增加: 'rest_framework',
- 在user-> urls.py添加类视图:
from django.conf.urls import url from apps.user.views import UserLogin urlpatterns = [ url(r'^user/login',UserLogin.as_view()) ]
- 添加view:
from django.shortcuts import render from rest_framework.views import APIView from apps.user.service.UserService import LoginService # Create your views here. class UserLogin(APIView): '''用户登入,生成token''' def post(self, request, *args, **kwargs): return LoginService.login(request)
- 为了代码清晰加入了service,只做逻辑,这里使用rest_framework.authtoken token验证,后面自己生成后保存到redis等
这里使用需要在setting增加:
'rest_framework.authtoken', 执行: python manage.py migrate
import binascii from django.contrib.auth import authenticate,login from rest_framework.authtoken.models import Token import os class LoginService(): @classmethod def userlogin(cls,request): #1.获取用户名和密码,使用django内置的authenticate进行验证 user = authenticate(username=request.data['username'],password=request.data['password']) if user: #2.删除老的token old_token = Token.objects.filter(user=user) old_token.delete() #3.创建新的token并传递给前端 token = Token.objects.create(user=user) #3.生成对应的token #token = binascii.hexlify(os.urandom(20)).decode() return {'data':{'token':token.key},'message':u'用户登入成功'} else: return {'status':0,'message':u'登入失败,用户名或者密码错误'}
- 通过createuser创建用户
- 通过postman进行验证
这样基本的验证就成功
登入失败