Товарищ веб-разработчик здесь. Кажется, я сталкиваюсь с этой проблемой (которая не возникала до недавнего времени), когда идентификатор сеанса cook ie изменяется при каждом запросе API.
Edit Подтверждает работать в IE11 & Edge !? Не чом ?! WTF! Не работает с извлечением и учетными данными: "include" либо ..
У меня есть веб-сайт с безопасным входом, однако теперь некоторые люди не могут войти в систему из-за того, что повар ie не был хранится в их браузере. И странная вещь, это не случалось в Chrome до недавнего времени! Я не уверен, что произошло или что изменилось ..
В сетевых заголовках сервер возвращается с заголовком Set-Cook ie, так что, похоже, сервер работает.
Ниже приведен пример кода, который не работает с моим интерфейсом (React w / Ax ios). У меня есть интерфейс, работающий на моей основной машине Ma c, и сервер узлов на ноутбуке Windows.
Я пробовал доверенный прокси app.set (закомментировано), но это не кажется, ничего не меняет. Также я искал вокруг и пробовал кое-что с доменом, но я не могу найти ничего, что работает. Я тестирую это на localhost , , и у бэкэнда есть другой URL-адрес, чем у внешнего интерфейса. Может ли это быть проблемой с конфигурацией домена / CORS?
Узловой сервер
const session = require('express-session')
const cors = require('cors')
const app = express()
app.use(express.json())
app.use(cors({ credentials: true, origin: ['http://localhost:3000', 'http://192.168.100.122'] }))
// app.set('trust proxy', 1)
app.use(session({
secret: 'SECRET_KEY_HEEEE',
resave: false,
proxy: true,
saveUninitialized: true,
// Being tested via local IP Address, this would change to secure in prod
cookie: { secure: false, httpOnly: false, maxAge: 600000 }
}))
app.get('/', (req, res) => {
console.log(req.sessionID)
// Session ID changes every time I hit this request
if (req.session.views) {
req.session.views++
res.send(req.session.views.toString())
} else {
req.session.views = 1
res.send('Started View Count!')
}
})
app.listen(5050, _ => console.log('Getting smacked on port 5050'))
React Frontend с Ax ios & withCredentials = true
import axios from 'axios'
axios.defaults.withCredentials = true
class App extends Component {
handleGetCookie = () => {
axios.get('http://192.168.100.131:5050/').then(response => {
console.log(response.data)
// Response.data only shows "Started View Count"
})
}
render() {
return (
<div className="App">
<h1>Express Sessions & MongoDB!</h1>
<button onClick={this.handleGetCookie}>Get me a cookie!</button>
</div>
)
}
}
export default App
I ' мы пытались изменить withCredentials, чтобы включить, того же происхождения, но ничего не меняется ...
В настройках моего браузера включены файлы cookie и файлы cookie третьих сторон!
Любая помощь будет принята с благодарностью!