使用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. 【crunch bang】文件管理器-thunar

    Thunar拥有的实用功能: 缩略图查看 批量重命名 安装: $ sudo apt-get install thunar 加速thunar启动速度 sudo leafpad /usr/share/gv ...

  2. ubuntu支持shh远程连接记录

    打开终端输入sudo apt-get update更新软件库 在输入sudo apt-get install openssh-server下载ssh sudo /etc/init.d/ssh rest ...

  3. Linux中重定向命令行

    http://www.ahlinux.com/start/base/3170.html

  4. Docker CPU 资源限制——CPU固定核功能测试

    Docker使用Linux cgroup来实现资源的限制,对于CPU的限制有两种方法: 1.cpuset CPU Set限定容器使用某个固定的CPU核.使用默认的libcontainer引擎时,可以通 ...

  5. Hive与数据库的异同

    一.Hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习 ...

  6. ectouch第八讲 之模板内容修改

    前台:1.前台页面logo代码[ 文件位置:\mobile\themes\default\index.dwt] <div style="text-align: center;paddi ...

  7. Oracle性能优化--DBMS_PROFILER

      想看到过程或者函数执行每一步的过程:想看到每一步所占的时间吗?借助profiler吧:它可以满足你来分析过程/函数执行比较久:可以直接快速找到病因:从而可以优化那一步需要优化下.        一 ...

  8. dbms_job.submit 单次执行

    DBMS_JOB.SUBMIT用于定时任务,基本用法如下: DBMS_JOB.SUBMIT(:jobno,//job号                                      'yo ...

  9. redis初试牛刀

    先来无事就学学redis.可是并没有想的那么美好.首先要解释一下,redis主流是安装在lunx系统中的,甚至官网直接没有给出windows版本.要下载windows只能去所谓的githup.好吧我在 ...

  10. 训练集(train set) 验证集(validation set) 测试集(test set)

    转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...