javascript - 将响应 Request.post token 保存在变量中

标签 javascript node.js post request protractor

我只需要获取 API 中返回的 token 即可完成 URL。我需要获取response.body并保存在一个变量中以便之后使用。

我正在使用 Protractor 进行自动化测试,并打开一个 URL,我正在使用返回 token 的 API,以用作 URL 中的参数

describe('TEste API', function(){
    var Request = require('request');
    it("api Testing in protractor", async function (callback) {
        let tokenReturn = "empty";

        tokenReturn = Request.post({
            "headers": { "content-type": "application/x-www-form-urlencoded" }, 
            "url": "https://corpqa.sts.ford.com/adfs/oauth2/token",
            "form": {
                "grant_type":'client_credentials',
                "client_id":'ad9cdf61-e863-4606-a90a-cf7b7141234',
                "client_secret":'QmjeT5UZ0N1M0jOEcggrxgFzw-vrZY2UphAy21d5',
                "resource":'urn:age:pcf:sss:dev',
            }
        }, (error, response, body) => {
            if (error) {
                return console.dir(error); 
            }
            resp = JSON.parse(response.body);
            console.log("inside: " + resp.access_token);

            callback();
        });
        console.log("outside: www.example.com/?token=" + tokenReturn);
    });                                                                     
});//------------------------- end describe

在控制台中告诉我。

外部:

www.example.com/?token=[object Object]

内部:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IldzZks3Q2FtMDZKY3dkR1Z6a2NiYVUzd21wZyJ9.eyJhdWQiOiJ1cm46YWdlOnBjZjpzdGY6ZGV2IiwiaXNzIjoiaHR0cHM6Ly9jb3JwcWEuc3RzLmZvcmQuY29tL2FkZnMvc2VydmljZXMvdHJ1c3QiLCJpYXQiOjE1NzMyMzIzNjYsImV4cCI6MTU3MzIzNTk2NiwiYXBwdHlwZSI6IkNvbmZpZGVudGlhbCIsImFwcGlkIjoiYWQ5Y2RmNjEtZTg2My00NjA2LWE5MGEtY2Y3YjcxNDE4OTQ1IiwiYXV0aG1ldGhvZCI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9hdXRoZW50aWNhdGlvbm1ldGhvZC9wYXNzd29yZCIsImF1dGhfdGltZSI6IjIwMTktMTEtMDhUMTc6MDQ6MjYuMTU5WiIsInZlciI6IjEuMCJ9.kuVfmgvN7_t4h2LB5o6dzTV2hngdapMrWFRPANISg5ayUnqeBMKHI5PWvISddfZ2qjO7kSPXlYVffhjrBhqAxY75EAhLX8hAmHDm_2jl49prtnsnqV-l-zhFaqCyfhEcgtVCRE_GX6EON2pewsX09Vdbn_2uHvh5wcGdWCnontzkZdrf__X8-tuE5R7tHrtge0ZXMdx5bCF7INKzA1YolTwxOOiYNVvZFPDKLRwa4VUf_qTKN5BmLisRVN4gmnTzGTPXjXlHZApRwJAbXR4V7VhtVQ6VcjHuyYIpp_rK0K7kQjwu0FLpE1FHZTNRwvXNI1VqyhGaanx2bM_59NyDgg

我只是希望外部结果等于带有 token 的内部结果。 我做了一些更改,但结果更改为 UNDEFINED 而不是 OBJECT。

最佳答案

也许使用 promise ?

示例:

 function requestToServer(){
    return new Promise((resovle, reject) => {
        Request.post({
                "headers": { "content-type": "application/x-www-form-urlencoded" }, 
                "url": "https://corpqa.sts.ford.com/adfs/oauth2/token",
                "form": {
                    "grant_type":'client_credentials',
                    "client_id":'ad9cdf61-e863-4606-a90a-cf7b7141234',
                    "client_secret":'QmjeT5UZ0N1M0jOEcggrxgFzw-vrZY2UphAy21d5',
                    "resource":'urn:age:pcf:sss:dev',
                }
            }, (error, response, body) => {
            if (error) {
                return console.dir(error); 
            }
            resp = JSON.parse(response.body);
            console.log("inside: " + resp.access_token);
            resovle(resp.access_token);
            callback();
        });
    });
 }

 describe('TEste API', function(){
        var Request = require('request');
        it("api Testing in protractor", async function (callback) {

            let tokenReturn = await requestToServer();
            console.log("outside: www.example.com/?token=" + tokenReturn);
        });                                                                     
    });//------------------------- end describe

关于javascript - 将响应 Request.post token 保存在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58771061/

相关文章:

ios - 通过 iOS 将数据发送到 POST JSON Web 服务

php - $.ajax POST 在 IE8 上打开一个新窗口

javascript - 为什么无法应用转换 :none to my elements?

node.js - 如何在 Protractor 中设置 webElement 的属性?

javascript - 构建元素时重写sass url

node.js - 无法使用 Elementor npm 模块在 chrome 中启动 url

javascript - 附加不同 Promise 链时 JavaScript Promise 的执行顺序

php - 不同帖子类型的 Wordpress 不同特色图片大小

javascript - 关闭侧边栏然后处理表单提交

javascript - Mui sx 样式仅在某些断点处