从服务端获取token写入本地文件的方法

const http = require('http');
const fs = require('fs');
const postData = JSON.stringify({
  'username': 'admin',//用户名
  'password': 'admin',//密码
  'grant_type': 'PASSWORD'
});
const options = {
  method: 'POST',
  protocol: 'http:',
  hostname: '127.0.0.1',//server ip
  port: 8080,//server port
  path: '/api/oauth2/v1/user/access_token',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(postData)
  }
};
const req = http.request(options, (res) => {
  console.log(`statusCode:${res.statusCode}`);
  console.log(`headers:${JSON.stringify(res.headers)}`);
  res.setEncoding('utf8');
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    console.log(`body:${JSON.stringify(JSON.parse(data), null, 2)}`);
	var file="src\\environments\\environment.ts"
	fs.open(file,'a',function(err,fd){
		console.log(fd);
	});
	var content="export const environment = {"+
					"production: false,"+
					"product: 'web',"+
					"authorization: {"+
						"name: 'ACCESS-TOKEN',"+
						"value: '"+JSON.parse(data).access_token+"'"+
					"}"+
			"};";
	console.log();
	fs.writeFile(file,content,'utf-8',function(err){
		if(err){
			console.error(err);
		}else{
			console.log("write ok");
		}
	});
	// fs.close();
  });
});
req.on('error', (e) => {
  console.log(`error:${e.message}`);
});
req.write(postData);
req.end();

通过node运行本段代码,修改服务端oauth地址以及用户名密码之后,可以将服务端获取的token写入angular的environment文件中,开发环境下可以通过此方式联调添加token以获取对服务端的访问。

猜你喜欢

转载自my.oschina.net/u/1271447/blog/2980723