热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DJango跳转页面并删除cookie

当用户访问

当用户访问




1
http://127.0.0.1/

的时候我会验证用户是否登陆,如果登陆就正常访问,否则就跳转到

1
http://127.0.0.1/login

,基本的功能已经实现,代码如下:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class UserAuthMiddleware(MiddlewareMixin):

    def process_request(self, request):



        # 如果COOKIE不存在

        if 'uc' not in request.COOKIES:

            # 如果访问的路径不是/login/就跳转到/login/

            if request.path != '/login/':

                return redirect('/login')

        # 如果存在

        else:

            # 获取session中用户登陆状态的值 如果为true则登陆 否则跳转登录页面

            uc = request.COOKIES['uc']

            try:

                us = request.session[uc]

                # 如果用户登陆的状态为false 跳转登陆页面

                if us['is_login'] != 'true':

                    return redirect('/login')

            # 根据COOKIE取session值出错 跳转登录页面

            except Exception as e:

                return redirect('/login')

上面的代码是一个中间件,那么现在有这么一个问题就是说,如果有人通过不正当手段去访问必须是登陆之后才能访问的页面,他可能也会伪造一个COOKIE来进行验证,如果带有COOKIE,那么第一个

1
if

判断就是没用的,进入第二个判断,第二个判断用户是不合法的,然后跳转到

1
http://127.0.0.1/login/

页面,但是访问这个页面的时候还是会进行验证。

我现在需要这样这,在第二个判断中,如果在session中获取不到值,那么就要把用户的session删除,然后再跳转到登陆页面,问题就是如何再跳转登陆页面吧这个COOKIE删除掉呢?


   



推荐阅读
author-avatar
倾城修罗__598
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有