使用Django实现用户登录,并记录登录用户的Cookies

用户登录的过程就是拿表单信息和数据库中的信息核对,如果正确就记录下用户的Cookies。

定义登录表单类型

class LoginForm(forms.Form):        username = forms.CharField(label=‘用户名:‘,max_length=30)        password = forms.CharField(label=‘密码:‘,widget=forms.PasswordInput())

判断用户名是否在数据库中

def login_validate(request,username,password):        req_value=False        user = authenticate(username=username,password=password)        if user is not None:                if user.is_active:                        auth_login(request,user)                        return True        return req_value

Views

@csrf_exemptdef login(request):        errors = []           if request.method == ‘POST‘:                form = LoginForm(request.POST)                if form.is_valid():                        data = form.cleaned_data                        username = data[‘username‘]                        password = data[‘password‘]                        if login_validate(request,username,password):                                response = render_to_response(‘index.html‘,{‘username‘:username},RequestContext(request))                                response.set_cookie(‘username‘,username,3600)                                username=request.COOKIES.get(‘username‘,‘‘)                                return response                         else:                                errors.append(‘温馨提示:密码错误,请重新输入!‘)                else:                        errors.append(‘温馨提示:用户名不对,请重新输入!‘)        else:                form = LoginForm()        return render_to_response(‘login.html‘,{‘errors‘:errors,‘form‘:form},RequestContext(request))
时间: 2024-10-10 03:20:33

使用Django实现用户登录,并记录登录用户的Cookies的相关文章

ORACLE 记录连接用户的IP地址以及登录失败用户的IP地址

前言:实现的功能主要是,oracle登录成功记录登录用户ip地址,登录失败记录登录失败ip地址 1,需要建立一个触发器记录登录成功的客户端用户的ip地址 大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢?先运行DBMS_SESSION 过程包注册,然后执行存储过程on_logon_trigger,这样当客户端登陆后,在v$session的client_info列会记录其相应的IP信息. 利用 DBMS_SESSION 过程包,先执行 BE

ASP.NET MVC实现一个用户只能登录一次 单用户登录

现在许多网站都要求登录后才能进行进一步的操作,当不允许多用户同时登录一个帐号时,就需要一种机制,当再登录一个相同的帐号时,前面登录的人被挤下线,或者禁止后面的人登录.这里实现的是前一种功能. 网上有许多文章都有描述如何实现该功能,看过之后,想着自己也动手记录一下吧,这里是参考的原文地址:http://www.cnblogs.com/f23wangj/p/4984302.html 实现原理:在服务器端记录登录的用户ID+SessionID,当重复登录时,根据用户ID用新的SessionID替换掉旧

Linux 记录所有用户登录和操作的详细日志

1.起因 最近linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址.操作时间.操作用户等. 所以我们不得不自己写代码来实现这样的功能. 2.自动记录脚本 编写脚本如下: history USER=`whoami

在Linux下记录所有用户的登录和操作日志

一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通过脚本代码来实现记录所以用户的登录操作日志: 编辑/etc/profile文件,在文件末尾加入下面代码: 首先加上一行,来记录实时的 export HISTTIMEFORMAT="%F %T `who am i|awk '{print $1}'` as `whoami` : " 实时的有缺

Django Admin Cookbook-17如何仅限特定用户登录Django Admin管理后台

17.如何仅限特定用户登录Django Admin管理后台? 只有勾选了is_staff=True的用户才允许登录Django Admin管理后台.要禁止用户访问Admin后台,可以应该设置该用户is_staff=False. 同样,超级管理员可以通过is_superuser=True设置.如果is_staff=False的用户尝试登录管理后台,将看到如下消息. 返回目录 原文地址:https://www.cnblogs.com/superhin/p/12174549.html

Django不允许单用户多浏览器同时登录

models.py #在扩展用户表内,多添加一个session字段,用于存放session_key class UserInfo(AbstractUser): id = models.AutoField(primary_key=True) department = models.CharField(max_length=10) last_login = models.CharField(max_length=32, null=True) login_ip = models.CharField(m

Linux记录每个用户不同会话登录后的所有操作

为记录每个用户对应的操作,利于事后查询 . 修改/etc/profile,添加如下代码 vim /etc/profile history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ]; then USER_IP=`hostname` fi if [ ! -d /var/log/history

Django之入门 CMDB系统 (三) 登录注销

Django之入门 CMDB系统 (三) 登录注销 前言 作者: 何全,github地址: https://github.com/hequan2017 QQ交流群: 620176501 通过此教程完成从零入门,能够独立编写一个简单的CMDB系统. 目前主流的方法开发方式,分为2种:mvc 和 mvvc方式.本教程为 mvc 方式,即 django负责渲染html.后面会推出 mvvc(前后端分离)的入门教程. 教程项目地址: https://github.com/hequan2017/husky

django 注册、登录及第三方接口程序(4):扩展邮箱注册,登录,微博登录

1.邮箱注册 这里需要扩展User,两种解决办法,1,注册时将email字段内容赋给username,这种瞒天过海型的,另一种就是扩展user,这里介绍django1.5的扩展方法. 1.setting配置 AUTH_USER_MODEL = 'manager.MyUser' # 扩展表的位置,appname.Model, MyUser是manager app下models中的用户类 AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends