保护API令牌,使其成为我的index.js中的一个var
Securing API Token, is making it a var in my index.js possible?
所以我构建了一个html表单来与Slack交互。目前我的js代码是这样的。
$("#submitemail").click(function(){
$.post(
"https://openpgh.slack.com/services/hooks/incoming-webhook?token=MY_SECRET_TOKEN",
JSON.stringify({'text':'invite request from: '+$("#email").val(),'username':'Slack Inviter','icon_emoji':':raising_hand:'})
).success(function(){
$("#email").val("");
});
});
如果有人直接从我的html文件中复制这个,他们可以运行一个控制台命令,更改JSON,用大量的胡说八道轰炸我的slack组,直到他们达到API调用限制。
我想知道的是,我是否可以将其存储在我的index.js(我使用的是node.js模板)中作为var,然后在html中调用它。
非常感谢您的任何选择或建议,我对此非常陌生。
我的结构是:
Slack App
|_node_modules
| |_express
|_public
| |_index.html
| |_node.svg (idk what this does)
|_.gitignore
|_app.json
|_index.js
|_package.json
|_procfile
|_README.md
我的index.js的代码只是
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'))
});
如果你只需要一个基本的模式w/a按钮来点击执行表单和提取电子邮件,我可以输入我的完整html。
免责声明:此代码未经测试
你基本上会这样做:
index.js(评论解释了我添加的内容):
var express = require('express');
// install request module
var request = require('request');
var app = express();
// make a new route that you can call from the client side
app.get('/getSlackData', function(req, res) {
//variable to hold your response from slack
var slackResponse;
//make the request to slack
var slackUrl = "https://openpgh.slack.com/services/hooks/incoming-webhook?token=MY_SECRET_TOKEN""
request(slackUrl, function (error, response, body) {
if (!error && response.statusCode == 200) {
slackReponse = response;
} else {
console.log(error);
});
return slackResponse;
});
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'))
});
所以我们添加了一个新的路由,基本上是一个API,你可以从客户端调用,它将返回你从Slack获得的JSON对象。你几乎可以让你的客户端代码保持不变,只需更改你调用的路线:
$("#submitemail").click(function(){
$.post("/getSlackData",
JSON.stringify({'text':'invite request from:'+$("#email").val(),'username':'Slack Inviter','icon_emoji':':raising_hand:'})
).success(function(){
$("#email").val("");
});
});
我希望我能正确理解你的问题,这至少能让你朝着正确的方向前进。
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 当var==0时,我如何显示一个警报
- '这'在使用之前分配给了一个var
- 一个'var'在函数内部声明
- 为什么我需要在这里输入var,为什么它会给我一个数字作为答案?(Javascript)
- Javascript(如果var包含一个单词,则仅更改该单词的颜色)
- JavaScript 在内部函数中保留一个 var
- 将 var 的值应用于加载页面中的另一个变量
- jQuery-如何使var文本可点击,该文本放置在由更多元素组成的另一个var中(var,checkbox)
- 在HTML下载列表中获取一个带有Selected Option的var到Google Script Spreadshee
- 为什么我的变量需要一个'var'声明,当它's已经在var声明中了
- var someSome=(函数(){..}());一个奇怪的javascript请求
- 将html var加载到另一个html元素中
- 在循环中,将一个php-var传递给javascript,其中包含该变量的值
- 如何创建<p>标记,并在我单击它时将其分配给一个var
- 从另一个函数返回 var 是 JS
- JavaScript var 分配一个动态可为空的值显示脚本错误
- jQuery - addClass 到多个项目,当其中一个项目是 var 时
- 在 JavaScript 中,当一次声明多个变量时,仅使用一个 var 语句是否有内存优势
- 为什么 var 组合 = null + “” 有一个值