Мне нужно автоматизировать поток в 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!");
});