如何保护 express api 以仅允许我的角度应用程序(域)

Posted

技术标签:

【中文标题】如何保护 express api 以仅允许我的角度应用程序(域)【英文标题】:How to secure express api to allow only my angular app (domain) 【发布时间】:2018-07-04 19:01:18 【问题描述】:

我正在结合 Angular 应用构建 API。现在我已经实现了 JWT 来保护 api。现在我们还希望实现 OAuth2,这也没有问题。

但问题是 JWT 只需要在请求来自某个域的情况下才有效。该怎么做?

【问题讨论】:

【参考方案1】:

您只需从 npm 安装 cors 即可:

npm install cors

然后在您的快递应用中:

var cors = require('cors')

var corsOptions = 
origin: 'http://example.com',
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) 
choke on 204 


app.get('/products/:id', cors(corsOptions), function (req, res, next) 
  res.json(msg: 'This is CORS-enabled for only example.com.')
)

【讨论】:

我完全按照您的示例实现了它,但它不起作用。我正在使用:typescript,routing-controllers 也许这就是它不起作用的原因?

以上是关于如何保护 express api 以仅允许我的角度应用程序(域)的主要内容,如果未能解决你的问题,请参考以下文章

保护 MY REST API 仅用于 MY IOS APP

保护 Express API

在 Express 和 NodeJ 上保护路由

使用 express-jwt 进行基于角色的授权?

AWS IAM 策略:如何更改 AWSLambdaFullAccess 策略以仅允许访问一个 S3 存储桶?

从角度 2 调用 laravel 后端 api