存在许多与此类似的问题,但没有一个问题可以帮助我。基本上我正在使用WSGI start_response()方法link。我尝试在响应中使用元组[('Set-Cookie','token = THE_TOKEN')]设置一个虚拟标题,并将其添加到开始响应中,如下所示:
status = '200 OK'
response = 'Success'
start_response(status,[('Set-Cookie', "DMR_TOKEN=DMR_TOKEN")])
return response
我不确定它是否正常工作,但它在setting cookies。现在,让我们假设标头是正确的,并且在以下请求中我想验证令牌。捕获过去设置的cookie /标头的正确方法是什么?
我一直在阅读,发现我需要这样的东西:
(environ.get("HTTP_COOKIE",""))
但是这一直在产生空字符串,所以我只是假设标题/ cookie没有正确设置。
谢谢你们
答案 0 :(得分:7)
我认为您需要明确设置路径以获取Cookie中的有用行为,尝试类似:...
from Cookie import SimpleCookie
def my_app(environ, start_response):
session_cookie = SimpleCookie()
session_cookie['session'] = "somedata"
session_cookie['session']["Path"] = '/'
headers = []
headers.extend(("set-cookie", morsel.OutputString())
for morsel
in session_cookie.values())
start_response("200 OK", headers)
答案 1 :(得分:2)
这是我想出的一个简单解决方案,用于在WSGI中设置cookie,不需要外部库:
// As you are already in foreach loop so,
<form action="all-articles.php" method="post">
<label class="custom-toggle">
<?php if($article['is_public']): ?>
<input type="checkbox" checked name="published" value="<?php echo $article['id']; ?>>
<input type="hidden" name="is_published" value="yes"> or 1
<?php else: ?>
<input type="hidden" name="is_published" value="no"> or 0
<input type="checkbox" name="published" value="<?php echo $article['id']; ?>>
<?php endif; ?>
<span class="custom-toggle-slider rounded-circle"></span>
</label>
</form>