Не удалось установить идентификатор пользователя в req.session в экспресс?

avatar
shobhit_yadav
1 июля 2021 в 15:58
180
0
0

Когда я вхожу в свой реактивный веб-сайт, я добавляю идентификатор пользователя к моему req.session:-

 if (!valid) {
      return {
        errors: [
          {
            field: 'password',
            message: 'password not correct'
          }
        ]
      };
    }

    req.session.userId = user.id;

    if (req.sessionID) {
      await redis.lpush(`${user.id}`, req.sessionID);
    }

Но когда я перехожу на экран подачи, у меня есть запрос, который извлекает мои данные с сервера, который, похоже, не работает. когда я утешал журналы, в моем запросе не было моего идентификатора пользователя.

enter image description here

Верхний — когда я вхожу в систему, а следующий — когда я использую Me Query, и для контекста это мой mequery:-

 @Query(() => User, { nullable: true })
  async me(@Ctx() { req }: MyContext): Promise<User | null> {
    console.log('Me Query Resquest is this');
    console.log(req.session);
    if (!req.session.userId) {
      console.log('Not Working');
      return null;
    }
    console.log('User Context');
    console.log(req);
    const user = (await User.findOne({
      where: { id: req.session.userId }
    })) as User;

    return user;
  }

Может ли кто-нибудь помочь мне решить эту проблему? Это код экспресс-сессии в моем индексном файле: -

  app.use(
    session({
      store: new RedisStore({
        client: redis as any,
        disableTouch: true
      }),
      name: 'qid',
      secret: 'aslkdfjoiq12312',
      resave: false,
      saveUninitialized: false,
      cookie: {
        httpOnly: true,
        secure: false,
        maxAge: 1000 * 60 * 60 * 24 * 90 // 90 Days
      }
    })
  );

Я разместил свой бэкэнд на heroku

Источник

Ответы (0)