Взятие токена с npm для POSTMAN с неявным типом предоставления - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно автоматизировать поток в POSTMAN, и первым делом нужно получить токен с веб-страницы. https://dev -morethan.gobstsf.co.uk У нас есть значения полей, которые нужно сделатьэто с типом предоставления «Неявный» (URL-адрес обратного вызова, URL-адрес авторизации, идентификатор клиента)

Заранее спасибо !!

Я попытался получить токен с npm, используя «puppeteer».Я захожу на страницу, ставлю имя пользователя и пароль и нажимаю кнопку запроса.Но ответом является 13 различных ответов, где показано, как создается токен, перед последним -

{  
   "keys":[  
      {  
         "kid":"9mYEm8sl-aYE_inaT09J8FdXPaYlt4ErinujFub72gM",
         "kty":"RSA",
         "alg":"RS256",
         "use":"sig",
         "n":"3YCx4r5lbM-zCjLkW5QmUYWMlfvqssJjUYof_yiNbwKvt_v6EvPnPQwc4bBy2YuxqLMjzkAhtpD9wt0ynh6Z4hlr0DKu_qE_KYvbkLLyci410I4OYf-jhS7CcoP0t0ycVIIQ9gDHGIUK3VcftbEb_s1zAjrld0Qb-x23MtKU636mlr4bOFg7T3OjVxuajSHLWtrHoUroJykccXHngEfpZeNT5LqcKClPTaUAOsoHoPOTJ8HfVTx2ATLMc44STVBkyrVvC_PDyBQVXeRyJtMfkRA2AwHi5FgnBU42tidZX0zx1bd-m6odOCwaV9SJ5dMHkoUWRgM-JZglddG05sdDaw",
         "e":"AQAB"
      }
   ]
}

and the last one is encripted. Any idea that how I could do to get the token? please.


const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iPhonex = devices['iPhone X'];
var fs = require('fs');
var jwt = require('jwt-simple');
var array = [];
var foo = 0;
var ruta ="";

(async () => {

  const browser = await puppeteer.launch({headless: false})
  const page = await browser.newPage()

  await page.emulate(iPhonex);

  await page.goto('https://dev-morethan.gobstsf.co.uk/auth/realms/morethan/protocol/openid-connect/auth?response_type=id_token%20token&client_id=morethan-ng&state=DGZMOwghg9zXJoWIB8GG1apoGiTOiebxYOqXHnS0&redirect_uri=https%3A%2F%2Fdev-morethan.gobstsf.co.uk%2Fredirect%2Flogin&scope=openid%20profile%20email%20user&nonce=DGZMOwghg9zXJoWIB8GG1apoGiTOiebxYOqXHnS0');
  //await page.focus('#tsf > div:nth-child(2) > div.A7Yvie.emca > div.zGVn2e > div > div.a4bIc > input')
  await page.focus('#email')
  await page.keyboard.type('Our_User');
  await page.focus('#password')
  await page.keyboard.type('Our_Password');
  await page.click('body > main > section > div.container-fluid.container-fluid-lg > div > div > form > div > div:nth-child(5) > div'); 

 //Code get response
   page.on('response', async response => {
    const url = response.url();
    try {
      const req = response.request();
      const orig = req.url();
      const text = await response.text();
      const headers = await response.headers();
      const status = response.status();
      //console.log('And the text is: '+text);
        //Coger token
    /*const tokenField = "#token";
    page.waitFor(tokenField);
    const token = await page.evaluate((tokenField) => document.querySelector(tokenField).value, tokenField);
console.log(token); //here is the token*/
    //Coger token
      //Guardar en fichero
        fs.writeFile('text.txt', text, function(err) {
            array.push(text);
        if(err) {
            return console.log('Y el error fue'+err);
        }
        console.log("The file was saved!");
    }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...