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 значение путем передачи вновь сгенерированного токена?

0 ответов

Другие вопросы по тегам