【问题标题】:Authenticate all Request to REST API with no username/password to get any token在没有用户名/密码的情况下验证所有对 REST API 的请求以获取任何令牌
【发布时间】:2018-05-11 12:09:21
【问题描述】:
我正在销售产品,API 从节点后端获取产品并显示在 Angular 前端,后端集中且 Angular 前端位于多个域上,我需要验证从我的 Angular 前端发出的所有请求-end 到节点后端。用户没有帐户。我需要确保没有其他人通过 POSTMAN 或其他服务复制产品数据。 JWT 无法工作,因为请求被公开,因此可以复制令牌,因此无法进行身份验证。我只需要我的角度前端就可以发出请求,并且我可以验证请求的来源。谁能建议我接下来应该尝试什么?任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签:
angularjs
node.js
rest
api
authentication
【解决方案1】:
也许像检查原始 IP 地址之类的?您应该能够通过类似的方式在 Node Express 后端获取 IP
if (req.ip == 127.0.0.1) // whatever IP your angular app is hosted at
【解决方案2】:
您可以尝试通过 CORS 属性将前端域列入白名单,或使用中间件检查请求 url。
中间件示例
var whitelistedURL = ['abc.com','abc.xyz']
function(req, res, next){
if(whitelistedURL.indexOf(req.originalUrl)==-1){
res.send({
status: 'Unauthorised'
})
}else{
next()
}
}