Graphql: перезаписывает значение контекста вновь созданным токеном для входа в систему другого пользователя
Я играл с JSONWebToken
и успешно удалось войти в систему пользователя с помощью доступа token
генерируется путем входа в систему пользователя и передачи его context
, Затем я передаю идентификатор пользователя, декодированный из токена, чтобы сделать запрос на публикацию и добавить идентификатор пользователя в поле в MongoDB
модель.
Но проблема в том, что когда я генерирую токен, делая запрос на вход от другого пользователя, а затем передаю его header
как Authorization
а затем попробуйте сделать запрос на отправку, он все еще добавляет идентификатор предыдущего пользователя в поле в MongoDB
модель.
Код ниже показывает, как я передаю информацию о пользователе context
и в настоящее время я делаю все requests
с игровой площадки Apollo's 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
значение путем передачи вновь сгенерированного токена?