简单的搭建一个计算token的node服务器
程序员文章站
2022-03-02 23:04:08
...
简单的搭建一个计算token的node服务器
var http = require('http');
const querystring = require("querystring");
var url = require('url');
const crypto = require('crypto');
var server = http.createServer(function (request, response) {
//解析url
//声明一个GET变量,存放解析好的数据
var GET = {};
//如果url中有“?”说明有请求地址和提交数据
if (request.url.indexOf("?") != -1) {
//等号前和等号后需分成两个数组
//这样querystring才可以正常工作
var arr = request.url.split("?");
var url = arr[0];
//用querystring解析,返回一个键值对,赋值给GET
GET = querystring.parse(arr[1]);
} else { //如果没有“?”,则说明之请求了一个地址
var url = request.url;
}
//时间戳,过期时间,设置为一天后过期,86400为24小时的秒数表示
var timestamp = parseInt(Date.now()/1000 + 86400);
//生成token
var obj = crypto.createHash('sha256');
var appid = GET['appid'];
var channelId = GET['channelId'];
var userId = GET['userId'];
// token = sha256(appId + appKey + channelId + userId + nonce + timestamp)
obj.update(appid + '<appKey>' + channelId + userId + '<随机码>' + timestamp.toString(), 'utf8');
var token = obj.digest('hex'); //hex是十六进制
console.log(token);
//响应包
var data = {appid:'<appid>', userid:userId, nonce:'<随机码>',timestamp:timestamp.toString(),token:token, gslb:'<url>'}
var datas = {data: data};
response.writeHead(200, {'Content-Type': 'application/json'});
response.end(JSON.stringify(datas));
});
server.listen(22);
console.log("Server runing at port: " + 22 + ".");
上一篇: 2.3web服务器
下一篇: 今日推荐:十款炫酷的轮播图特效代码