【发布时间】:2020-07-12 07:51:44
【问题描述】:
我正在使用 Flask 创建一个带有 Vue 前端和 Python API 的简单 SPA。目前,我已在本地机器上配置了所有内容(API 在 localhost:5000 运行,Vue SPA 可在 localhost:8080 访问)。我正在使用flask-jwt-extended 来管理使用 JWT 的身份验证,并将访问和刷新令牌作为 cookie 在对 Vue SPA 的响应中传回。
几乎一切正常,cookie 已在浏览器中正确设置,但页面刷新后 cookie 消失。我觉得我的配置遗漏了一些东西,但到目前为止,我尝试过的任何东西都没有为我工作。有什么想法吗?
我的 jwt 扩展配置设置如下:
JWT_ACCESS_COOKIE_PATH = "/api/"
JWT_ACCESS_CSRF_COOKIE_PATH = "/api/"
JWT_ACCESS_TOKEN_EXPIRES = timedelta(minutes=60)
JWT_REFRESH_COOKIE_PATH = "/auth/refresh"
JWT_REFRESH_CSRF_COOKIE_PATH = "/auth/refresh"
JWT_REFRESH_TOKEN_EXPIRES = False
JWT_COOKIE_SECURE = False
JWT_TOKEN_LOCATION = ['cookies', 'headers']
JWT_COOKIE_CSRF_PROTECT = True
JWT_SECRET_KEY = os.getenv('JWT_SECRET_KEY')
JWT_CSRF_IN_COOKIES = True
JWT_SESSION_COOKIE = False
我的 vuex 操作中发出请求的代码在这里:
doLogin({ commit }, loginData) {
const transport = axios.create({
withCredentials: true
})
transport.post('http://localhost:5000/auth/login', {
...loginData
})
}
【问题讨论】:
标签: python vue.js flask flask-jwt-extended