node.js - Node.js 是否可以禁止客户端访问 /register_success 端点,除非通过 res.redirect()?
问题描述
当客户在我的node.js
应用程序上成功注册时,他们会被重定向到成功页面,
res.redirect('/register_success');
www.mysite/register_success
但是,任何客户端都可以通过在地址栏中键入来访问此端点。
是否有可用的方法可以限制客户端访问此端点,除非路由器在成功注册后将它们转发给它?我正在寻找,但我似乎找不到任何东西。
解决方案
您需要一些方法来跟踪页面视图之间的状态。
传统上,这是通过包含会话标识符的 cookie 完成的,会话状态存储在服务器端。您可以使用express-session,它会为您执行此操作。
从文档中:
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}))
app.use(function (req, res, next) {
if (!req.session.views) {
req.session.views = {}
}
// get the url pathname
var pathname = parseurl(req).pathname
// count the views
req.session.views[pathname] = (req.session.views[pathname] || 0) + 1
next()
})
app.get('/foo', function (req, res, next) {
res.send('you viewed this page ' + req.session.views['/foo'] + ' times')
})
app.get('/bar', function (req, res, next) {
res.send('you viewed this page ' + req.session.views['/bar'] + ' times')
})
推荐阅读
- c# - C# ConfigurationBuilder 获取 JsonObject
- graphviz - 如何用 DOT 语言绘制没有重叠边(平面图)或节点的图
- html - 将文本作为背景放置到表格中
- java - 尝试从两个现有数组创建一个二维数组
- python - 如果条件中断,则单独分组数据,Cnd:true 分配 grp 1;cnd false:分配第 2 组;cnd true:分配第 3 组
- python - 你如何访问kivy中按钮的文本?
- amazon-s3 - 气流:“ListObjectsV2 操作:访问被拒绝”使用 GoogleCloudStorageToS3Operator
- node.js - 当我通过 Express 发送 json 对象时,浏览器不显示选项卡“raw | parsed”
- java - APACHE POI 中的 vlookup 表错误中不存在列
- python - 强制执行自定义类型参数的属性类型