Как выставить x-токен со стороны сервера в экспресс - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть следующий маршрут авторизации в бэкэнде моего API:

router.post('/', async (req, res) => {
  const { error } = validate(req.body); 
  if (error) return res.status(400).send(error.details[0].message);

let user = await User.findOne({ username: req.body.username });     
if (!user) return res.status(400).send('Invalid username or password.');  

const validPassword = await bcrypt.compare(req.body.password, user.password);
if (!validPassword) return res.status(400).send('Invalid username or password.');

const token = user.generateAuthToken();
res.header('Access-Control-Expose-Headers', 'X-OBSERVATORY-AUTH');
res.header('X-OBSERVATORY-AUTH', token).send(_.pick(user, ['_id', 'email', 'username','isAdmin']));
});

А во внешнем интерфейсе у меня есть следующий обработчик для входа в систему:

login( username: string,  password: string) {
  var user: User = {  username: username, password: password };
this.http
  .post<any>("http://localhost:3000/api/auth",user, {observe:'response'})
  .subscribe((res) => {
    const token = res.headers.get('X-OBSERVATORY-AUTH');
    this.token = token;
    console.log(res.headers.get('X-OBSERVATORY-AUTH'));
    if (token!==null) {
      this.isAuthenticated = true;
      this.userId = res.body._id;
      this.isAdmin=res.body.isAdmin;
      this.authStatusListener.next(true);
      this.saveAuthData(token, this.userId, this.isAdmin); 
    }
  });
}

Кто яПопытка сделать это передать X-OBSERVATORY-AUTH в заголовке ответа, но я не могу понять, как выставить токен из серверной части.Что мне делать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...