gpt4 book ai didi

django session 不在 iframe 中维护

转载 作者:行者123 更新时间:2023-12-04 04:36:30 26 4
gpt4 key购买 nike

我正在使用 django 创建一个 session 聊天机器人。为了保持聊天机器人中的聊天流程,我正在使用 django session 。但是当我在 iframe 中使用聊天机器人的链接时,它不会存储任何 session 并且流程会中断。我想要一个功能,即使在 iframe 中也能帮助维护 session 。

对于 iframe

<html>
<head></head>
<body>
<embed style=" width: 384px; height: 525px; margin-right: 0px !important; bottom: 0px; float: right; position: absolute; bottom: 30px; width: 100%;" frameborder="0" scrolling="no" id="iframe" src="http://*********.com/********/*******.html">


</body>
</html>

用于维护 session 的代码
@staticmethod
def extract_data(request, input_data):
from chat import validations
if 'city' not in request.session:
response_data = {'extra': {}, 'data': {}}
response_data['extra']['statement'] = 'Select Car Model which you like to rent?'
response_data['extra']['type'] = 'carmodel'
response_data['data'] = Cars.city_check(request,response_data, input_data)

elif 'veh_name' not in request.session:

response_data = Cars.veh_name_check(request, input_data)

elif 'days' not in request.session:
response_data = validations.days_check(request, input_data)

elif 'phone' not in request.session:
response_data = validations.phone_check(request, input_data)

elif 'email' not in request.session:

response_data = validations.mail_check(request, input_data)

elif 'name' not in request.session:
response_data = validations.name_check(request, input_data, 'Car')

return response_data

最佳答案

要允许来自 iframe 的 cookie,您必须使用 SameSite=None 设置您的 cookie和 Secure选项。

Set-Cookie: session=your_session; SameSite=None; Secure 
来源: https://medium.com/trabe/cookies-and-iframes-f7cca58b3b9e
要使用 Django 执行此操作,您必须更新以下设置:
  • SESSION_COOKIE_SAMESITE
  • SESSION_COOKIE_SECURE

  • SESSION_COOKIE_SAMESITE = 'None'  # As a string
    SESSION_COOKIE_SECURE = True
    不幸的是, 'None' SESSION_COOKIE_SAMESITE 的值仅从 Django 3.1 开始可用,并且有 no plan to backport it in 3.0 and 2.2 .
    另请注意,您的网站必须通过 HTTPS 提供服务。

    关于django session 不在 iframe 中维护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627038/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com