Я поигрался с JSONWebToken
и успешно смог войти в систему, получив доступ к token
, сгенерированному при входе в систему пользователя и передав его в context
.Затем я передаю идентификатор пользователя, декодированный из токена, чтобы сделать запрос поста и добавить идентификатор пользователя в поле в MongoDB
модели.
Но проблема заключается в том, что я генерирую токен, выполняя запрос на вход в систему.от другого пользователя и затем передайте его header
как Authorization
, а затем попробуйте сделать запрос на публикацию, он все еще добавляет идентификатор предыдущего пользователя в поле в модели MongoDB
.
Приведенный ниже код показывает, как я передаю информацию пользователя на context
, и в настоящее время я делаю все requests
с игровой площадки Apollo Graphql.
const server = new ApolloServer({
schema,
context: async({req}) => {
try {
if(req.headers.authorization) {
const token = getToken(req.headers.authorization);
const {payload} = jwt.verify(token, 'secret');
if (!payload.tenant)
throw new Error('No Tenant');
const user = await getUser(payload.tenant);
return {user}
}
} catch (err) {
console.log(err)
return {}
}
}
});
Как я могуперезаписать значение context
, передав новый сгенерированный токен?