NodeJS, JsonWebToken kullanarak "JsonWebTokenError: secret or public key must be provided" hatası alıyorum.
export default (req: any, res:any, next: any) => {
const token = req.headers.access_token as string
if(!token) {return res.status(HTTP_UNAUTHORIZED).send("UnAuthhorized")}
try{
const decodedUser = verify(token, process.env.TOKEN_SECRET!)
req.user = decodedUser
}catch(err){
console.log(err)
res.status(HTTP_UNAUTHORIZED).send()
}
return next()
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
hata soyluyor aslinda sebebini, JWT'yi parse ederken kullandigin secret key'in hatali.
process.env.TOKEN_SECRET!
burada belki sonundaki unlem isaretinden dolayi olabilir, boyle bir kullanim gormedim daha once javascript'de. En kotu debug etmek icin console'a basip bakabilirsin key'in dogru gelip gelmedigine.
Aklıma gelen ilk hata sanırım env dosyasında yer alan TOKEN_SECRET'a ulaşamıyor. Emin olmak için, yukarda paylaştığın kodun yer aldığı dosyada bu secret key'i bir değişkene atadıktan sonra (token'da uyguladığın gibi) console'da görüntülemeye çalışabilirsin.