django 的auth.authenticate返回为None
使用auth.authenticate(username= username,passowrd=passowrd),这个用户认证时候,明明数据库中有记录,但是返回就None
我的错误点比较多:
1.我创建的用户名和密码,并没有添加到在auth_user(django自带的表)中,而是放进了通过modely映射生成的表,从而导致auth.authenticate()根本查不到响应的数据
2.插入数据用户名密码时应该用User.objects.create_user(username=username,password=password),这个方法会把密码生成哈希值,插进数据库,而不能用User.objects.create(。。。。),这样插进去的数据密码是明文滴~~~~
总结:用对方法User.objects.create_user(username=username,password=password),插对表user
下面是调用注册和登录的代码:
#coding = utf-8
from django.shortcuts import render
from django.http import JsonResponse
import time
from django.views.decorators.csrf import csrf_exempt
from sign1.models import smile_task_user
from django.core.exceptions import ValidationError
from django.contrib import auth
from django.contrib.auth.models import User #注册接口POST /register username/password
@csrf_exempt
def register(request): username = request.POST.get('username','')
password = request.POST.get('password','')
regist_time = time.strftime("%Y-%m-%d %H:%M:%S") if username=="" or password =="" :
return JsonResponse({'message':'username or passowrd is null !!!'}) result = User.objects.filter(username = username)
if result:
return JsonResponse({'message':'username is already exists !!!'}) try:
User.objects.create_user(username=username,password=password) except ValidationError as e:
error = "####create data worng#############"
return JsonResponse({'ststus':10024,'message':error})
return JsonResponse({'username':username,'regist_time':regist_time,'message':'regist ok!'}) #登录接口POST /login username/password
@csrf_exempt
def login(request):
if request.method =="POST":
username=request.POST.get("username","")
password=request.POST.get("password","") user=auth.authenticate(username=username,password=password)
print(user)
#user = smile_task_user.objects.filter(username = username,password = password)
if user is not None:
auth.login(request,user)
request.session['user'] = username # 将 session 信息记录到浏览器
return JsonResponse({'message':"login sucess"})
else:
return JsonResponse({'message':"username or password is error!!"})
折磨我好几分钟!!!
使用auth.authenticate(username= username,passowrd=passowrd),这个用户认证时候,明明数据库中有记录,但是返回就None
我的错误点比较多:
1.我创建的用户名和密码,并没有添加到在auth_user(django自带的表)中,而是放进了通过modely映射生成的表,从而导致auth.authenticate()根本查不到响应的数据
2.插入数据用户名密码时应该用User.objects.create_user(username=username,password=password),这个方法会把密码生成哈希值,插进数据库,而不能用User.objects.create(。。。。),这样插进去的数据密码是明文滴~~~~
总结:用对方法User.objects.create_user(username=username,password=password),插对表user
下面是调用注册和登录的代码:
#coding = utf-8
from django.shortcuts import render
from django.http import JsonResponse
import time
from django.views.decorators.csrf import csrf_exempt
from sign1.models import smile_task_user
from django.core.exceptions import ValidationError
from django.contrib import auth
from django.contrib.auth.models import User #注册接口POST /register username/password
@csrf_exempt
def register(request): username = request.POST.get('username','')
password = request.POST.get('password','')
regist_time = time.strftime("%Y-%m-%d %H:%M:%S") if username=="" or password =="" :
return JsonResponse({'message':'username or passowrd is null !!!'}) result = User.objects.filter(username = username)
if result:
return JsonResponse({'message':'username is already exists !!!'}) try:
User.objects.create_user(username=username,password=password) except ValidationError as e:
error = "####create data worng#############"
return JsonResponse({'ststus':10024,'message':error})
return JsonResponse({'username':username,'regist_time':regist_time,'message':'regist ok!'}) #登录接口POST /login username/password
@csrf_exempt
def login(request):
if request.method =="POST":
username=request.POST.get("username","")
password=request.POST.get("password","") user=auth.authenticate(username=username,password=password)
print(user)
#user = smile_task_user.objects.filter(username = username,password = password)
if user is not None:
auth.login(request,user)
request.session['user'] = username # 将 session 信息记录到浏览器
return JsonResponse({'message':"login sucess"})
else:
return JsonResponse({'message':"username or password is error!!"})
折磨我好几个晚上~~~
django 的auth.authenticate返回为None的更多相关文章
- python - django authenticate 返回结果一直是None
# 不论怎么测试 authenticate 返回结果一直是None,查了查原因好像是 django 2.1 版本的问题 ( 我用的是 2.1.7) 解决方法: 1. 先导入 from django.c ...
- Django之auth模块(用户认证)
auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的 ...
- Django进阶-auth集成认证模块
auth认证模块是Django内置集成的一个用户认证模块. auth认证模块方法 方法 释义 auth.authenticate() 认证校验 auth.login(request,user) 封装认 ...
- Django之auth组件
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- Django之Auth模块 实现登录,退出,自带session 与认证功能的一个重要的模块
Auth模板 1. 什么是Auth模块,有什么用? django的auth的模块的使用: auth 是集合注册,登录,注销,session 多个功能集合在一起的模块 2. 使用Auth组件的默认aut ...
- django之auth认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- Django权限auth模块详解
转自:http://www.cnblogs.com/Finley/p/5575305.html 1,auth模块是Django提供的标准权限管理系统,可以提供用户身份认证,用户组和权限管理 2,aut ...
- Django的auth【认证】模块简介
首先我们先来复习一下路由别名如何使用,这里仅仅复习一下二级路由的路由别名该如何使用 ·1.在视图函数中使用二级路由别名,需要加上app的名称+“:”+ “路由别名” from django.urls ...
- Django之auth模块用户认证模块
一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站 ...
随机推荐
- 绑定repeater时三目运算加特殊结果处理
<%#((Convert.ToDouble().ToString() != ).ToString(%
- Openstack的计算节点的nova-network异常中止及实例无法删除排错过程
在预生产环境(172.17.46.2)发现无法删除实例,可以对实例做暂停,恢复操作. 查询原因发现计算节点的nova-network异常 [root@node-12 ~]# /etc/init.d/o ...
- 查找(AVL平衡二叉树)
[1]为什么需要平衡二叉树? 矛盾是推进事物向前发展的源动力. 那么平衡二叉树是从哪里来?肯定是有矛盾存在的.请看程来师的分析: [2]什么是平衡二叉树? 平衡二叉树的基本认识: [3]平衡二叉树的构 ...
- mybatis 复习笔记03
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...
- 160930、Javascript的垃圾回收机制与内存管理
一.垃圾回收机制-GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存. 原理:垃圾收集器会定期(周期性 ...
- 对EJB返回的AaaryList显示到table的处理方法
1. ArrayList --> Object[] ArrayList x = new ArrayList(); int i = x.size(); ...
- javaWeb 使用jsp开发 if else 标签
1.jsp页面调用代码 <t:choose> <t:when test="${user==null }">还没有登录</t:when> < ...
- java对象的序列化与反序列化使用
1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 2.为什么需要序列化与反序列化 我们知道,当两个进程进 ...
- OpenCV学习 物体检测 人脸识别 填充颜色
介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...
- HDU 5950:Recursive sequence(矩阵快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=5950 题意:给出 a,b,n,递推出 f(n) = f(n-1) + f(n-2) * 2 + n ^ 4. f ...