我想在进行OAuth登录时设置一些Cookie。但是,在下一个请求中似乎没有cookie。在下面的代码中设置cookie的正确方法是什么?

@app.route("/login")
def login():
    verifier = request.args.get("oauth_verifier","")
    if verifier:
        token = request.cookies.get("token")
        secret = request.cookies.get("secret")
        access_token = oauth_helper.get_access_token(token,secret,verifier)
        resp = make_response()
        resp.set_cookie("token_key", access_token.key, max_age= 7*60*60 * 1000)
        resp.set_cookie("secret_key", access_token.secret, max_age= 7*60*60 * 1000)
        return redirect("/")
    else:
        token, secret, registration_url = oauth_helper.get_request_token_url()
        resp = make_response()
        resp.set_cookie('token', token, max_age= 60 * 1000)
        resp.set_cookie("secret", secret, max_age= 60 * 1000)
        return redirect(registration_url)

最佳答案

您正在创建一个响应并设置一些cookie,但随后将其丢弃并返回带有重定向的其他响应。相反,重定向应该是您在其上设置cookie的响应。

resp = redirect('/')
resp.set_cookie('token_key', access_token.key)
resp.set_cookie('secret_key', access_token.secret)
return resp

关于python - 根据响应设置的Cookie似乎不会持续存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28020917/

10-11 20:23