欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单的搭建一个计算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 + ".");
相关标签: web服务器