Graphql: перезаписывает значение контекста вновь созданным токеном для входа в систему другого пользователя - PullRequest
0 голосов
/ 25 октября 2018

Я поигрался с 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, передав новый сгенерированный токен?

...