#javascript #python #heroku #cookies #setcookie
Вопрос:
Я использую файлы cookie для авторизации при входе в систему на Flask/Nuxt.js веб-сайт, и он работает, когда я запускаю сервер локально, когда, но не в моем развертывании Heroku. Я не верю, что это проблема переднего плана, потому что, когда она работает, она работает как на локальном, так и на интерфейсе Vercel, и одно и то же правило применяется, когда она не работает. Кроме того, у меня нет кода в интерфейсе для получения файла cookie.
Установка файла cookie:
res = make_response({'user': user}, 200) res.set_cookie( 'token', value=token, httponly=True, samesite='strict', secure=True, expires=(datetime.utcnow() timedelta(weeks=1)) ) return res
После запроса:
@app.after_request def after_request(response): response.headers.add( 'Access-Control-Allow-Origins', ['lt;deployment-sitegt;', 'lt;localhostgt;'] ) response.headers.add( 'Access-Control-Allow-Headers', 'Content-Type,Authorization,Secret' ) response.headers.add( 'Access-Control-Allow-Methods', '*' ) response.headers.add( 'Access-Control-Allow-Credentials', 'true' ) return response
Отправка запроса:
//Axios Client Getter export const getters = { client: (state, getters, rootstate) =gt; { const BASE_URL = process.env.NODE_ENV === 'production' ? lt;deployment-sitegt; : 'lt;localhostgt;' const Client = Axios.create({ baseURL: BASE_URL }) Client.interceptors.request.use( async function(config) { const secret = bcrypt.hashSync( lt;api-secretgt;, genSaltSync() ) config.headers['Secret'] = secret return config }, error =gt; Promise.reject(error) ) Client.defaults.withCredentials = true return Client } } //Axios Call export const actions = { async aUserLogin(store, user) { const Client = store.rootGetters['auth/client'] try { const res = await Client.post('login/users', user) return true } catch (err) { if (err.response.status === 401) { store.dispatch('aIncorrectPassword') } else { store.dispatch('error/aPassError', err, { root: true }) } return false } } }