首页 > DJango跳转页面并删除cookie

DJango跳转页面并删除cookie

当用户访问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删除掉呢?


真是搞不懂, 我提供的第二个链接明明有提到怎么删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...


一言以蔽之,就是不合法直接删了跳登录

response = HttpResponseRedirect('/login/')
response.delete_cookie('uc')
return response
【热门文章】
【热门文章】