我有一个laravel流明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 Node正在检查索赔的另一个日期?