要在AWS Elastic Beanstalk上通过Load Balancer传递JWT,可以使用AWS Elastic Load Balancer (ELB) 上的重写规则。具体步骤如下所示:
在AWS Elastic Beanstalk中打开您要部署应用程序的环境。
转到“配置”选项卡并选择“加载平衡器”。
单击“创建新的El利器”,并选择让您使用的选项。
设置El利器配置并单击“下一步”。
到“高级设置”选项卡并单击“添加规则”。
在“条件”下,选择“请求”从下拉列表中选择“Header”而不是“Path”。
在“值”大于部分,添加“Authorization”。
在“操作”下,选择“修改”并选择“添加头部”。
在“添加头部”窗格中,键入名称,值,命名空间等,并选择“HTTP无误”,然后单击“提交”。
单击“下一步”两次,然后单击“创建”。
以下是使用Node.js和Express的示例代码,它允许您传递JWT。
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.get('/private', (req, res) => {
const token = req.headers['authorization']
console.log('Token', token)
if (token === 'Bearer mysecrettoken') {
res.send('This is a private route')
} else {
res.sendStatus(401)
}
})
app.listen(3000, () => console.log(`Listening on port 3000`))
在这个例子中,当您从浏览器访问/private
路由时,它会检查头部中是否包含自定义JWT。 如果检测到正确的