nodejs 调用openstack api keystone 登录认证 (二):获取token

 获取header 里面的 token

var http = require('http');
var url = require('url');
var os = require('os');
var fs = require('fs');
var querystring = require('querystring');

var x_subject_token = '';
function keystone_auth() {
    var auth_body = {
        auth: {
            identity: {
                methods: [
                    "password"
                ],
                password: {
                    user: {
                        name: "admin",
                        domain: {
                            name: "default"
                        },
                        password: "sunya.123"
                    }
                }
            }
        }
    };

    var auth_body_string = JSON.stringify(auth_body);

    var options = {
        host: 'xx.xx.xx.xx',
        port: 5000,
        path: '/v3/auth/tokens',
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Content-Length': auth_body_string.length
        }
    };

    var req = http.request(options, function (res) {
        res.setEncoding('utf8');
        console.log("res:", res);
        console.log("res.headers:", res.headers);
        console.log("res.headers.x-subject-token:", res.headers['x-subject-token']);
        for (var key in res.headers) {
            if (key === 'x-subject-token'){
                console.log(key);
                console.log(res.headers['x-subject-token']);
                x_subject_token = res.headers['x-subject-token']
            }
        }
        res.on('data', function (data) {
            console.log("data:", data);   //打印结果
            console.log(x_subject_token);
        });
    });

    req.write(auth_body_string);

    req.end;
}

keystone_auth();

返回的关键 header 数据(我们需要从里面提取出 token):

res.headers: {
  date: 'Sat, 28 Dec 2019 17:54:34 GMT',
  server: 'Apache/2.4.6 (CentOS) mod_wsgi/3.4 Python/2.7.5',
  'x-subject-token': 'gAAAAABeB5baGZZJUEXSgxWGiF1xanS6MPEhd5v5QDMRD8tdEEE3ma5AJcq08otdLZRDNEtGFpdk5cbeSZ38ufPm-DQEWDdC__7sEBYft_GQrpq6gTlUQNk1Sgu8Bo2l8wFeZw-6pBdodKUNL8lJf
6JEzIKi_1Qy_A',
  vary: 'X-Auth-Token',
  'x-openstack-request-id': 'req-3df5a3f2-d762-444b-846a-d088404fd5dc',
  'content-length': '312',
  connection: 'close',
  'content-type': 'application/json'
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千码君2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值