Express ,React TypeError: Cannot read property 'token' of undefined cookie

Viewed 66

I have fronted that made on react and backend that made on express, i try to make jwt authitication, for this i use cookie, but i got error, this is my '/login' route from express

app.post('/login',async (req,res)=>{
    const {login, pwd } = req.body
    const user = req.body
    const isUserExist = await User.findOne({login:login})
    if(!isUserExist){
        console.log('wrong login')
    } else{
        bcrypt.compare(pwd,isUserExist.pwd).then((match)=>{
        if(!match){
            console.log("wrong pwd")
        } else{
            const accessToken = createToken(user)
            const validtoken = verify(accessToken,"jwt-secret")
            res.cookie("token",accessToken,{
                maxAge:60*60*24*30*1000
            })
            console.log(req.cookies["token"])
            req.cookies["token"]
        res.redirect('/')
        }
    })
    }

})

accesToken work correctly and validtoken give me correct data, also i log req.cookies['token'] to see what it is inside, but i got error that 'token' is undefined

localhost for react is 3000 for express 5000

this what i use to display data

router.get("/userData",async (req, res) => {
    const accessToken = req.cookies["token"] 
    const validtoken = verify(accessToken,"jwt-secret")
    const user = await User.findOne({login:validtoken.login})
    res.send(user)
});

and inside component

 this.takeUserData()
   .then(res => this.setState({ data: res }))
   .catch(err => console.log(err));

takeUserData = async() =>{
    const response = await fetch('/userData');
    const body = await response.json();
    if (response.status !== 200) {
      throw Error('1234') 
    }
    return body;
}
0 Answers
Related