简体   繁体   English

如何修复未定义的错误? NodeJS,JWT

[英]How can I fix not defined error? NodeJS, JWT

const express = require("express");
const jwt = require("jsonwebtoken");
const { type } = require("os");

const app = express();

app.get("/api", (req,res) => {
    res.json({
        message: "Welcome to the API"
    });
});

app.post("/api/posts", (req,res) => {
    res.json({
        message: "Post has been created.."
    });
});

app.post("/api/login", verifyToken, (req,res) => {
    // Mock User
    const user = {
        id: 24,
        username: "Jonah",
        email: "jonah_52@gmail.com"
    }

    jwt.sign({user}, "secretkey", (err, token) => {
        res.json({
            token
        });
    });
});  

// Verify Token
function verifyToken(req,res,next) {
    // Get authorization header value
    const bearerHeader = req.headers["authorization"];
}
    // Check if bearer is undefined
if(typeof bearerHeader !== "undefined") {

}else{
    // Forbidden
    res.sendStatus(403);
}

app.listen(5000, () => console.log("Server is listening on port 5000.."));

I want to make Node.js API Authentication With JWT and when I check this with if/else method I get an error that is saying "res is not defined", how can I defined this "res" and fix the error?我想使用 JWT 进行 Node.js API 身份验证,当我使用 if/else 方法检查时,我得到一个错误,上面写着“res not defined”,我该如何定义这个“res not defined”?

res.sendStatus(403); res.sendStatus(403); ^ ^

ReferenceError: res is not defined ReferenceError: res 没有定义

You have some improper bracing in your verifyToken() function.您的verifyToken() function 中有一些不正确的支撑。 Change this:改变这个:

// Verify Token
function verifyToken(req,res,next) {
    // Get authorization header value
    const bearerHeader = req.headers["authorization"];
}
    // Check if bearer is undefined
if(typeof bearerHeader !== "undefined") {

}else{
    // Forbidden
    res.sendStatus(403);
}

to this:对此:

// Verify Token
function verifyToken(req,res,next) {
    // Get authorization header value
    const bearerHeader = req.headers["authorization"];
    // Check if bearer is undefined
    // FIX THIS: need to not just check if it's undefined, but if
    //    its valid
    if(typeof bearerHeader !== "undefined") {
        next();
    } else {
        // Forbidden
        res.sendStatus(403);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM