Vue.js 烧瓶+;由于chrome中的SameSite问题,Vue Flask会话不是持久的
我尝试使用本文中提到的SPA风格使用Flask+Vue构建: 使用chrome时,烧瓶会话不会持久 google dev tools提出了一个同样的问题: 我试图根据在stack overflow中找到的信息修复它: 设置:Vue.js 烧瓶+;由于chrome中的SameSite问题,Vue Flask会话不是持久的,vue.js,cookies,cross-domain,samesite,Vue.js,Cookies,Cross Domain,Samesite,我尝试使用本文中提到的SPA风格使用Flask+Vue构建: 使用chrome时,烧瓶会话不会持久 google dev tools提出了一个同样的问题: 我试图根据在stack overflow中找到的信息修复它: 设置: from flask import Flask, make_response from flask import session from flask_cors import CORS from flask_session import Session from So
from flask import Flask, make_response
from flask import session
from flask_cors import CORS
from flask_session import Session
from SodukoUtils import init_board_options, find_next_move
from data.sudopy import Sudoku
app = Flask(__name__)
SESSION_TYPE = 'filesystem'
app.secret_key = b'abjdslgjl'
app.config.from_object(__name__)
CORS(app, supports_credentials=True)
Session(app)
app.config.update(
SESSION_COOKIE_SECURE=True,
SESSION_COOKIE_HTTPONLY=True,
SESSION_COOKIE_SAMESITE='None',
)
然而,当我使用chrome浏览器时,问题仍然存在。
当我使用Mozila浏览器时,flask会话工作正常
在Vue中,我使用fetch发送http请求,方法是将模式设置为“cors”,将凭据设置为“include”
例如:
fetch(url, {
mode: 'cors',
credentials: 'include',
})
github存储库
套餐信息:
解决这个问题很困难,因为我无法安装您的依赖项或运行您的应用程序 我认为你做得对。我建议在初始化CORS和会话包之前设置
app.config
值。此外,在响应处理程序中,您可以手动将标题设置为标记“SameSite=None”
。代码如下所示
response.set_cookie('username','flask',secure=True,httponly=True,samesite='Lax')
请参阅文档如果您试图在Chrome上为flask应用程序设置samesite=None,我编写了一个解决方法,使用
flask.sessions
中的SecureCookieSessisonInterface
类,并使用response.headers.add()在响应上添加请求后
装饰程序
您的测试代码有任何回购吗?@TarunLalwani我在上面写的包信息中添加了详细信息。我尝试了你的建议,但没有成功,你需要弄清楚的第一件事是如何使用flask设置任何标题。这不是Vue问题。做一个烧瓶教程来创建带有自定义头的服务器。