python - DJango跳转页面并删除cookie

 阳光而灿烂61 发布于 2022-10-27 06:34

当用户访问http://127.0.0.1/的时候我会验证用户是否登陆,如果登陆就正常访问,否则就跳转到http://127.0.0.1/login,基本的功能已经实现,代码如下:

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,那么第一个if判断就是没用的,进入第二个判断,第二个判断用户是不合法的,然后跳转到http://127.0.0.1/login/页面,但是访问这个页面的时候还是会进行验证。

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

2 个回答
  • 真是搞不懂, 我提供的第二个链接明明有提到怎么删cookies, 谁没事干踩我答案?

    # Setting cookies :
    
        def login(request):
            response = HttpResponseRedirect('/url/to_your_home_page')
            response.set_cookie('cookie_name1', 'cookie_name1_value')
            response.set_cookie('cookie_name2', 'cookie_name2_value')
            return response
    # Deleting cookies :
    
        def logout(request):
            response = HttpResponseRedirect('/url/to_your_login')
            response.delete_cookie('cookie_name1')
            response.delete_cookie('cookie_name2')
            return response

    谢邀, 不大懂django, 所以找了这两个链接, 希望有所帮助

    http://stackoverflow.com/ques...

    http://stackoverflow.com/ques...

    2022-10-27 06:34 回答
  • 一言以蔽之,就是不合法直接删了跳登录

    response = HttpResponseRedirect('/login/')
    response.delete_cookie('uc')
    return response
    2022-10-27 06:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有