【问题标题】:Invalid Token Error: Invalid token specified: Cannot read property 'replace' of undefined?令牌无效错误:指定的令牌无效:无法读取未定义的属性“替换”?
【发布时间】:2020-12-04 07:14:06
【问题描述】:

我试图解码通过 jwt 创建的令牌,以便我可以访问我的反应页面中的值并使用它。但由于某种原因它显示 “InvalidTokenError: Invalid token specified: Cannot read property 'replace' of undefined”这个错误,我真的需要帮助,非常感谢任何回答这个问题的人。

react.js 中的前端,解码令牌

 useEffect(()=>{
const token=localStorage.usertoken

const decoded = jwt_decode(token);

setinfo({
   id:decoded._id,
   email:decoded.email,
   username:decoded.username,
   
})


 },[])

后端node.js

router.get("/info",authenticateToken,(req,res)=>{

    UserProfile.findOne({_id: req.user._id})
            .then(user=>{
                console.log(user);
                if(user){
                    res.json(user)
                } else {
                    res.send("User does not exist")
                }
                
                
            })
            .catch(err=>{
                res.send("error:"+err);
            })
        
})

function authenticateToken(req,res,next){

const authHeader= req.headers['authorization']
const token = authHeader && authHeader.split(' ')

if(token == null) return res.sendStatus(401)

jwt.verify(token,secretkey,(err,user)=>{

    if(err) return res.sendStatus(403)
    req.user = user
    next();
})
}

【问题讨论】:

  • 我看不到你在哪里使用替换。您需要显示该代码。如果你没有实现 replace 方法,那么你应该检查堆栈跟踪并找出函数做了什么。然后确保该函数在它的 args 中得到了它所需要的内容
  • 我没有在代码中的任何地方使用replace,它在node modules包中jwt-decode的index.js中使用

标签: javascript node.js reactjs jwt json-web-signature


【解决方案1】:

我认为您从 localStorage 访问令牌的方式是错误的。 而不是

localStorage.usertoken

使用

localStorage.getItem("userToken")

考虑到您已设置用户令牌

localStorage.setItem("userToken", token_received_from_backend);

【讨论】:

    【解决方案2】:

    我也遇到了同样的错误。就我而言,我犯了一个错误。在 Localstorage 中请移除 token 变量并刷新页面

    • 在我的例子中,本地存储变量名称是 myTokenundefined,所以我删除了变量并刷新了页面

    【讨论】:

      【解决方案3】:

      调用云函数时,尽量在post请求中添加完整的函数url,而不是“/login”。

      【讨论】:

        猜你喜欢
        • 2017-10-08
        • 2019-03-19
        • 2018-03-07
        • 2021-02-07
        • 2022-01-15
        • 2021-07-05
        • 2021-01-10
        • 2017-04-16
        • 1970-01-01
        相关资源
        最近更新 更多