У меня есть laravel lumen API, мы делаем несколько запросов на вход в систему и хотим проверить подпись токена.
На самом деле у нас есть .env так:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:AdA23VBkVMHBkxTzGCyphNbvqsG1Jh9XENi4PQuFusM=
APP_TIMEZONE=UTC
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=narval_tenant
DB_USERNAME=root
DB_PASSWORD=realhost
CACHE_DRIVER=file
QUEUE_DRIVER=sync
JWT_SECRET=TQquewiCV0znRVZMN2JTmA0ukNNpXV4z
JWT_TTL=3600
И наш запрос отправьте нам токен.На самом деле токен выглядит так:
{
"iss": "MY_URL",
"iat": 1549844206,
"exp": 1550060206,
"nbf": 1549844206,
"jti": "iX9Wzivlrh52qMYh",
"sub": 1,
"prv": "87e0af1ef9fd15812fdec97153a14e0b047546aa",
"email": "MY_EMAIL"
}
Если мы проверяем токен и подпись на JWT.io, мы получаем «Подпись проверена»
Но в ответ на это мы проверяем с помощью:
import jwt_decode from "jwt-decode";
import * as jwt from "jsonwebtoken";
try {
console.log(nextProps.token)
const decoded = jwt.verify(nextProps.token, "TQquewiCV0znRVZMN2JTmA0ukNNpXV4z");
localStorage.setItem("token", nextProps.token);
this.props.history.push("/headquarters");
} catch (e) {
console.log(e.message)
this.setState({ isLoading: false });
let myColor = { background: "#f44242", text: "#FFFFFF" };
notify.show("Error en inicio de sesión", "custom", 5000, myColor);
}
Мы получаем это сообщение "jwt not active" в документации, в которой говорится:
NotBeforeError
Брошено, если текущее время находится до заявления nbf.
Error object:
date: Date 2019-02-11T00:25:24.000Z
message: "jwt not active"
name: "NotBeforeError"
stack: ""
Чтоя скучаю?Узел JTW проверяет претензии с другой датой?