Express.js:在用户发帖时获取用户的引荐来源网址
Express.js: Get user's referer url when they post
所以我想为我的网站创建一个评论系统,为了知道评论的页面(例如,用户上传的特定视频(,我以某种方式需要获取用户当前所在的页面的URL,当他们发表评论时(以便我知道如何将其保存在数据库中(。
路线是这样的:app.get('/video/:videoId', function(req, res){...})
所以视频网址将是这样的:/video/98ux8987s987f9xc89v3wjgrkgh32
.
当用户发布评论时,我需要获取 url 的最后一部分。我不想将网址与评论一起发送(在 ajax POST 函数中(,因为他们可以更改它!
顺便说一句,我不需要 url post url(如果我在 post 函数中有类似 req.url
的东西,我只会得到 post url:app.post('/comment', function(req, res){console.log(req.url)}
如果我这样做,我会得到/comment
(。
有没有办法做到这一点?
谢谢。
您可以使用 url 添加哈希,但它并非不可阻挡。在视频密钥中,您可以添加日期或用户 ID。
var secretkey = "4658{=#mkZl"; // The user doesn't know this string, and he can't make videoKey.
app.get('/video/:videoId', function(req, res){
res.render('video', {
videoId: req.params.videoId,
videoKey: sha256(secretkey + req.params.videoId + secretkey);
});
};
在您的 html 表单中:
<form action="/comment">
<input type="hidden" name="videoId" value="{videoId}" />
<input type="hidden" name="videoKey" value="{videoKey}" />
</form>
评论功能:
var secretkey = "4658{=#mkZl";
app.post('/comment', function(req, res){
if (req.body.videoKey == sha256(secretkey + req.body.videoId + secretkey))
//ok the user got video page, before he comments.
};
SHA256功能:
var crypto = require('crypto');
function sha256(data) {
return crypto.createHash("sha256").update(data).digest("base64");
}
我不确定我是否得到你,但这是你的意思吗?
app.post('/comment/:videoId', function(req, res) {
console.log(req.params.videoId)
}
videoId 参数位于 req.params.videoId 中。
相关文章:
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 如何使用Node.js脚本从Rally获取用户的修订历史
- Express.js:在用户发帖时获取用户的引荐来源网址
- 将用户制作的SVG(raphael.js)发送到服务器(php),以便通过电子邮件发送
- 在离开Aurelia.js上的页面之前,我如何要求用户进行确认
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 通过node.js和socket.io向特定用户发送数据
- 通过node.js和socket.io在两个用户之间发送消息
- 基于用户加载不同的controller/js文件'访问级别
- NumericTextBox-当用户键入数字时执行JS计算.能做到吗
- dust.js是随机用户上传的模板,可以安全地在服务器端执行
- Node.js和angular用户授权
- 如何执行被用户屏蔽的外部JS文件'adblockers
- Passport.js:使用主干网访问用户
- 如何检查当前用户电子邮件是否已在客户端js文件中验证
- 当错误时清除cookie 使用护照反序列化用户.js
- 如何使用护照循环用户.js并将用户列表打印到 DOM 上
- 用户.js如何在火狐中详细工作
- 在Opera's用户js中,当页面完成加载并下载了所有资源(如img,script,css等)时,使用什么事件名
- 从mysql中存储和检索用户js文件.php