解码 jwt 令牌
Decoding jwt token
我正在尝试解码我在登录时收到的 jwt 令牌,但它 returns ''null'' 在 console.log.
这是我解码的代码:
import jwt from 'jsonwebtoken';
function loginRequest(){
const token = axios.post('https://afe2021fitness.azurewebsites.net/api/Users/login',
state).then(data => {localStorage.setItem('jwtToken', data.data.jwt);
console.log(data.data.jwt)});
console.log(jwt.decode(token));
}
而且我也尝试了 jwt-decode 库中的解码器,但没有任何运气:
var decoded = jwtdecode(token);
上面写着“未捕获(承诺)n {message: 'Invalid token specified'}”
问题是您在初始化变量之前尝试使用 token
变量。您还需要在从 axios.post
返回 Promise
之前使用 await
。现在您必须在调用 loginRequest
之前使用 await
。所以最终代码如下所示:
import jsonwebtoken from "jsonwebtoken";
async function loginRequest() {
const response = await axios.post("https://afe2021fitness.azurewebsites.net/api/Users/login", state)
const { jwt } = response.data
localStorage.setItem("jwtToken", jwt);
console.log(jwt);
console.log(jsonwebtoken.decode(jwt));
}
您应该将 console.log(jwt.decode(token))
移动到 then
块内或使用 async
函数:
import jwt from 'jsonwebtoken';
async function loginRequest() {
try {
const { data } = await axios.post(
'https://afe2021fitness.azurewebsites.net/api/Users/login',
state
);
const token = data.jwt;
localStorage.setItem('jwtToken', token);
console.log(token);
console.log(jwt.decode(token));
} catch (err) {
console.log(err);
}
}
我正在尝试解码我在登录时收到的 jwt 令牌,但它 returns ''null'' 在 console.log.
这是我解码的代码:
import jwt from 'jsonwebtoken';
function loginRequest(){
const token = axios.post('https://afe2021fitness.azurewebsites.net/api/Users/login',
state).then(data => {localStorage.setItem('jwtToken', data.data.jwt);
console.log(data.data.jwt)});
console.log(jwt.decode(token));
}
而且我也尝试了 jwt-decode 库中的解码器,但没有任何运气:
var decoded = jwtdecode(token);
上面写着“未捕获(承诺)n {message: 'Invalid token specified'}”
问题是您在初始化变量之前尝试使用 token
变量。您还需要在从 axios.post
返回 Promise
之前使用 await
。现在您必须在调用 loginRequest
之前使用 await
。所以最终代码如下所示:
import jsonwebtoken from "jsonwebtoken";
async function loginRequest() {
const response = await axios.post("https://afe2021fitness.azurewebsites.net/api/Users/login", state)
const { jwt } = response.data
localStorage.setItem("jwtToken", jwt);
console.log(jwt);
console.log(jsonwebtoken.decode(jwt));
}
您应该将 console.log(jwt.decode(token))
移动到 then
块内或使用 async
函数:
import jwt from 'jsonwebtoken';
async function loginRequest() {
try {
const { data } = await axios.post(
'https://afe2021fitness.azurewebsites.net/api/Users/login',
state
);
const token = data.jwt;
localStorage.setItem('jwtToken', token);
console.log(token);
console.log(jwt.decode(token));
} catch (err) {
console.log(err);
}
}