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

const http = require('http');
//const http = require('https');//使用https时
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',
//rejectUnauthorized:false,//https不校验证书
  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以获取对服务端的访问。

为什么会有https调用呢,因为在联调阶段使用代理需要获取token,调用原来http的oauth2时,返回http状态301,表示不再支持http了,所以得换成https请求。

转载于:https://my.oschina.net/u/1271447/blog/2980723

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值