首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解码jwt令牌

解码jwt令牌
EN

Stack Overflow用户
提问于 2021-11-20 14:27:20
回答 2查看 44关注 0票数 0

Im正在尝试解码im登录时收到的jwt令牌,但它在console.log中返回''null'‘。

这是im解码的代码:

代码语言:javascript
运行
复制
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库中的解码器,但没有成功:

代码语言:javascript
运行
复制
var decoded = jwtdecode(token);

这样,它就会显示''Uncaught (in promise) n‘{message:’指定的令牌无效‘}’‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-20 14:37:05

应在then块内移动console.log(jwt.decode(token))或使用async函数:

代码语言:javascript
运行
复制
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);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-11-20 14:34:38

问题是您在初始化token变量之前尝试使用它。在从await返回Promise之前,您还需要使用axios.post。现在,在调用loginRequest之前必须使用await。因此,最终的代码如下所示:

代码语言:javascript
运行
复制
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));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70046820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档