그래서 여기서는 expressJ를 사용하여 NodeJS를 기반으로하는 애플리케이션을 백엔드 및 반응 프론트 엔드로 구축하고 있습니다. 백엔드에서는 현재 사용자가 로그인하여 이벤트를 만들 수 있습니다. 이 기능은 Postman을 사용하여 테스트되었으며 정상적으로 작동합니다.익스프레스 반응 쿠키 문제
이제 프론트 엔드에서 백엔드가 내가 권한이 없다고 알려줍니다. 재미있게도 크롬 확장을 사용하여 Postman의 쿠키로 저장된 쿠키 (프론트 엔드의 브라우저에서)를 바꿀 때 갑자기 작동합니다. 따라서 어떻게 든 쿠키가있는 어떤 것이 잘못 될 것입니다.
//Session used in express
app.use(session({
resave: true,
saveUninitialized: true,
secret: process.env.SESSION_SECRET,
store: new MongoStore({
url: process.env.MONGODB_URI || process.env.MONGOLAB_URI,
autoReconnect: true
}),
name: 'UsE'
}))
프론트 엔드는 fetch polyfill을 사용하여 로그인 요청을합니다.
그런 다음 백엔드는 pasport를 사용하여 사용자를 인증하며 모든 것이 잘되어야합니다. 나는 여기에서 쟁점이 될 수있는 것에 관해서는 완전히 상실하고있다.
다음은 백엔드에 401을 다시 요청하는 코드입니다. 기본 fetch
polyfill does not pass along cookies to the server으로
export const createEvent = (infos) => (dispatch) => {
dispatch(startFetching('createEvent'))
return fetch(baseURL +'/api/event', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
credentials: 'include',
body: JSON.stringify(infos)
})
.then(response => response.json())
.then(json => {
if (json.msg) {
dispatch(displayToast(json.msg))
}
if(json.event) {
dispatch(addEvent(json.event))
dispatch(push(`/event/${json.event._id}`))
}
dispatch(endFetching('createEvent'))
})
}
당신은 정말 세션을 유지하기위한'몽고 DB'가 필요하십니까? –
안녕하세요, 이것 좀보세요, 도움이 될 수 있습니다 - https://medium.com/@ar7casper/authentication-using-express-js-passport-js-7ae7a7484a55#.u6b9lpdeb – alexunder
@PraneshRavi 그는 문서가 없으면 세션이 누출되는 메모리 문제가 발생하기 때문입니다. –