Django之会话技术

本文详细介绍了三种常见的用户认证方式:session、token及cookie。分别讲述了它们在登录时如何保存用户状态,在个人中心如何获取及展示用户信息,以及如何实现用户登出功能。通过本文,读者可以了解到不同认证方式的具体实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用session:

登录时保存登录状态,

创建resp对象:
resp=HttpResponse()

将uname保存在服务器中
request.session['uname']=uname

将upwd保存在服务器中
request.session['upwd']=upwd

查看个人中心:

从服务器中获得登录时保存的uname
uname=request.session.get('uname',None)

从服务器中获得登录时保存的upwd
upwd=request.session.get('upwd',None)

登出已登录的账号

清空所有登录时保存的数据
request.session.flush()

2.使用token:

登录时保存登录状态

创建resp对象
resp=HttpResponse()
生成唯一的UUID:
utoken=str(uuid.uuid4())
在客户端生成utoken:
resp.set_cookie('utoken',utoken)
将生成的utoken保存到user表中
user.utoken=utoken
user.save()

查看个人中心:

在客户端拿到用户登陆时生成的utoken,默认为空:
utoken=request.COOKIES.get('utoken',None)
在user表中获取登录时生成的utoken对应的数据,
user=User.objects.filter(utoken=utoken).first()
uname=user.uname

登出:

创建resp对象
resp=HttpResponse()
删除客户端保存的utoken
resp.delete_cookie('utoken')
resp.content='登出成功'
return resp

3.使用cookie:
登录时在客户端保存用户信息:

创建resp对象
resp=HttpResponse()
将key为uname,值为uname的数据保存到客户端,max_age为过期时间,单位为s
resp.set_cookie('uname',uname,max_age=60)

查看个人中心:

在客户端获取key为uname的值:
uname=request.COOKIES.get('uname',None)

登出:

创建resp对象
resp=HttpResponse()
删除登录时保存在客户端中key为uname的值
resp.delete_cookie('uname')
resp.content='登出成功'
return resp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值