当我在django项目中使用时,为什么HttpResponseRedirect.set_cookie无效?

时间:2017-11-23 03:37:29

标签: django cookies

当我使用Google OAuth验证我的用户时,验证通过后,我想重定向到权限之前用户访问的页面,所以我想将页面路径保存到用户的cookie,所以我实现如下: / p>

def get_login_resp(request, redirect):
    print(redirect)
    auth_url = "https://accounts.google.com/o/oauth2/auth?" + urlencode({
        "client_id": GOOGLE_CLIENT_ID,
        "response_type": "code",
        "redirect_uri": make_redirect_url(request, redirect),
        "scope": "profile email",
        "max_auth_age": 0
    })
    resp = HttpResponseRedirect(auth_url)
    max_age = 3600 * 24
    expires = datetime.strftime(datetime.utcnow() + timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
    print(expires)
    resp.set_cookie('google_auth_redirect', redirect, max_age=max_age, expires=expires,
                    domain=LOGIN_COOKIE_DOMAIN, secure=True, httponly=True)
    print(resp._headers)
    print(resp.cookies)
    return resp

ps:redirect是我要保存的页面路径

但是当使用Postman请求登录URL时,我只能看到这个标题: response headers

这些饼干: Cookies

那我怎么能解决这个问题呢?我没有任何错误信息。

1 个答案:

答案 0 :(得分:0)

尝试每种方法,找出错误的方法,但仍然失败。

所以我尝试在其他机器(Linux服务器)上运行服务器,它可以工作!!!

BTW:我开发的PC是Macbook Pro 15英寸,2017年,带macOS High Sierra 10.13.1