使用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
好文要顶
关注我
收藏该文

0
0
 
posted @ 2016-11-02 18:30 龙心呢 阅读(28) 评论(0) 编辑 收藏
发表评论

昵称:

评论内容:





退出登录 订阅评论

[Ctrl+Enter快捷键提交]

公告

昵称:龙心呢
园龄:2年2个月
粉丝:0
关注:2

< 2016年12月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

搜索

 

django 的auth.authenticate返回为None的更多相关文章

  1. python - django authenticate 返回结果一直是None

    # 不论怎么测试 authenticate 返回结果一直是None,查了查原因好像是 django 2.1 版本的问题 ( 我用的是 2.1.7) 解决方法: 1. 先导入 from django.c ...

  2. Django之auth模块(用户认证)

    auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的 ...

  3. Django进阶-auth集成认证模块

    auth认证模块是Django内置集成的一个用户认证模块. auth认证模块方法 方法 释义 auth.authenticate() 认证校验 auth.login(request,user) 封装认 ...

  4. Django之auth组件

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  5. Django之Auth模块 实现登录,退出,自带session 与认证功能的一个重要的模块

    Auth模板 1. 什么是Auth模块,有什么用? django的auth的模块的使用: auth 是集合注册,登录,注销,session 多个功能集合在一起的模块 2. 使用Auth组件的默认aut ...

  6. django之auth认证系统

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  7. Django权限auth模块详解

    转自:http://www.cnblogs.com/Finley/p/5575305.html 1,auth模块是Django提供的标准权限管理系统,可以提供用户身份认证,用户组和权限管理 2,aut ...

  8. Django的auth【认证】模块简介

    首先我们先来复习一下路由别名如何使用,这里仅仅复习一下二级路由的路由别名该如何使用 ·1.在视图函数中使用二级路由别名,需要加上app的名称+“:”+ “路由别名” from django.urls ...

  9. Django之auth模块用户认证模块

    一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站 ...

随机推荐

  1. 关于CentOS 7.1后期维护的问题

    1.问题描述:在使用ssh服务远程登录的时候,当显示输入密码,特别特别的慢,刚刚搭建 服务器的时候还很正常,经过一个假期我实在忍不了它了,故决定解决此问题.服务器系统:CentOS 7.1 解决方式: ...

  2. C#中Attribute的继承

    在C#中Attribute是个非常有用的语法,本文不会介绍Attribute的使用方法,如果想了解Attribute的详细信息请查阅MSDN及网上相关文档.C#中的Attribute有两个地方是和继承 ...

  3. mysql笔记04 MySQL高级特性

    MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分 ...

  4. Mac下使用Automator实现隐藏和显示

    本文使用Makdown编辑 通常系统中打开一个文件有好多种方法,编辑也是.例如你要打开OmniGraffle来画个图(suppose you are working on the Mac OS X) ...

  5. nginx源码安装

    1,首先解决系统环境: 安装rpm包组{CentOS6 跟开发相关的包组:} a.  Development Tools #yum groupinstall "Development Too ...

  6. javaWeb 使用jsp标签进行防盗链

    /** * 1.新建类继承SimpleTagSupport * 新建2个属性, 添加对应的set方法 * 覆盖doTag()方法 */ import java.io.IOException; impo ...

  7. 和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程【转】

    转自:http://blog.csdn.net/eastmoon502136/article/details/7921846 对于SPI的一些结构体都有所了解之后呢,那么再去瞧瞧SPI的那些长见的操作 ...

  8. MySQL数据很大的时候

    众所周知,mysql在数据量很大的时候查询的效率是很低的,因为假如你需要 OFFSET 100000 LIMIT 5 这样的数据,数据库就需要跳过前100000条数据,才能返回给你你需要的5条数据.由 ...

  9. iOS学习之Table View的简单使用

    Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...

  10. thinkphp3.2 分页方式汇总

    //自定义分页 $page = $_GET['page'] ? $_GET['page'] : 1 ; $count = $this->Table("user")->c ...