http only cookie и его всегда можно прочитать при любом запросе, он не удаляетсяAuthorization if(request.apiToken)res.status(200).json(data)res.cookie('refreshToken', request.apiToken)
res.status(200).json({data, accessToken: request.accessToken))res.body + "modified"; и по какому принципу это работает?function modify(req, res, next){
res.body = res.body + "modified";
next();
} и положите туда все свои "повторяющиеся хотелки"res.body.tokens = tokens
next()req.tokens res.status(200).json(data)res.status(200).json({
data,
access_token,
message,
error
})api/user или как-то до него можно это сделать отдельно, а после уже прислать отдельно ответ с api/user?api/user, api/friends, api/contacts и т.д. избежать массового добавления кода по типуrouter.post('/user', async (req: Request, res: Response): Promise<void> => {
... await data
if(req.refreshToken) res.cookie('refreshToken', req.refreshToken, { httpOnly: true })
if(req.accessToken) {
res.status(200).json({data, access_token: `Bearer ${req.accessToken}`})
return
}
res.status(200).json({data})
}router.post('/user', async (req: Request, res: Response): Promise<void> => {
... await data
res.status(200).json({data})
}reqи делали next()
res.status(200).json(data)res.cookie('refresh_token', tokens.refresh_token, { httpOnly: true })
res.status(200).json(
{
data,
access_token: `Bearer ${tokens.access_token}`
}
)access_token: `Bearer ${tokens.access_token}`res.cookie('refresh_token', tokens.refresh_token, { httpOnly: true })middlewareили как-то еще access_tokenнужно же и новый refresh_token создавать, верно, а то мне показалось, что с твоих слов он не пересоздается?user_id AND tokenRefs (id, userId, validFrom, validTo)user_id у которой validTo=now и записывается в нее?refresh_token, а та, которую украли, так же останется рабочей и будет обновляться user_idAND refresh_token?refresh_tokenи при следующем логировании искать user_idи вписывать новое значение refresh_token?docker run -dp 127.0.0.1:5173:5173 react-testlocalhost:5173 docker run -dp 127.0.0.1:5173:5173 react-test
dispatch?Мы же ссылаемся на
useDispatch, а не какое-либо значениеКогда нужно его добавлять в массив, а когда нет?