NodeJS JWT Проверить даже токен Fail, если он совпадает с токеном знака

Пытаясь разработать свой API на NodeJS, я получаю свой токен подписи и отправляю его обратно по безопасным маршрутам API, но jwt никогда не действителен, даже если это тот же токен, который я сгенерировал! Что не так в моем коде?

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

pbkdf2(queryPassword, salt, 10000, length, digest, (err: Error, hash: Buffer) => {
  if (hash.toString('hex') === userPassword) {
    sign({'user': username, permissions: []}, secret, {expiresIn: '7d'}, (err, token => {
      response.json({'token': token});
    }));
  } else {
    response.json({'error': 'User / Password Mismatch'});
  }
});

Вот проверка:

verify(token, secret, function(tokenError, decoded) {
    if (tokenError) { // i'm always getting error...
        return response.status(403).json({
            message: 'Invalid token, please Log in first'
        });
    }

    next();
});

вот мой сервис Angular2, который запрашивает данные из моего API

let headers = new Headers({'Authorization': 'Bearer ' + this.token});
let options = new RequestOptions({headers: headers});
this.http.get(apiUrl, options);

токен, сгенерированный знаком:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidHQiLCJwZXJtaXNzaW9ucyI6W10sImlhdCI6MTQ4MzExNTAzNCwiZXhwIjoxNDgzNzE5ODM0fQ.bJbH4619JAU8pfPf_6BRYxYl0Vs

токен, полученный http-сервисом:

Носитель eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidHQiLCJwZXJtaXNzaW9ucyI6W10sImlhdCI6MTQ4MzExNTAzNCwiZXhwIjoxNDgzNzE5ODM0fQ.bVJbH4619WPVeMRYBH4619JAU8PXPx_6qcYl0


person Vince    schedule 30.12.2016    source источник


Ответы (1)


Наконец-то я нашел свою ошибку....

В моем angular2 Api я использовал эту строку

let headers = new Headers({'Authorization': 'Bearer ' + this.token});

мне нужно отправить только

let headers = new Headers({'Authorization': this.token});

«Носитель» вызывал у меня ошибку ...

person Vince    schedule 30.12.2016