我有一个用React和ReactRouter编写的单页应用程序,前端似乎很容易。但我不知道如何设计一个只能由管理员访问的后端。在服务器端,我使用NodeJS / Express RESTful API,它使用JWT(JsonWebToken)进行身份验证。你有什么想法?
您可以使用Express Middleware来检查和验证JWT。如果JWT有效,则继续使用API,否则重定向到登录。 ExpressJs站点上有很多关于中间件的文章。
一个很好的选择是express-jwt
您导入它,制作中间件,并将其放在任何受保护的路由之前。如果令牌有效,则将设置req.user,其中JSON对象已解码,以供稍后的中间件用于授权和访问控制。
const jwt = require("express-jwt");
const auth = jwt({
secret: jwt_secret
});
router.get("/secret/:uid", auth, profileCtrl.secret);