作为node.js/express的初学者,我希望前端从endpoint('/1'
)获取一些数据,但不希望用户在访问该endpoint时看到JSON数据。 如有任何帮助,我们将不胜感激。
var express = require('express');
var app = express();
var PORT = process.env.PORT || 3000;
app.use("/static", express.static('./static/'));
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html')
});
app.use('/1', function(req, res, next) {
res.status(404).send('Data not available to end user');
})
app.get('/1', function(req, res) {
res.json({
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
})
});
app.listen(PORT);
您可以实现身份验证(例如,使用JWT),但如果浏览器有令牌,它无论如何都将看到该json。 我不知道这是否是一个restful api,但如果不是,您只能发送post请求(如graphql)
没办法保证你想做什么。
您可以使用CSRF令牌,如果有人只是将浏览器指向端点,那么这将有所帮助。
看起来您正在使用Express--类似的内容将有助于使用CSRF:http://expressjs.com/en/resources/middleware/csurf.html
通常,如果您从javascript或浏览器中的其他东西获取“前端”请求,您不能阻止人们获取它。