summaryrefslogtreecommitdiff
path: root/school/node_modules/pronote-api/src/cas/generics/openent.js
blob: 7e3fa29ed2bcad993bb2bcf38d1ef4cea4357e8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const jsdom = require('jsdom');

const http = require('../../http');
const { getDOM, extractStart } = require('../api');

async function login({ url, account, username, password, target })
{
    const location = await http({ url, followRedirects: 'get' });

    let service = encodeURIComponent(url);
    if (location.startsWith('http') && location.includes('service=')) {
        service = location.substring(location.indexOf('=') + 1);
    }

    const jar = new jsdom.CookieJar();

    await getDOM({
        url: `https://${target}/auth/login`,
        jar,
        method: 'POST',
        data: {
            email: username,
            password,
            callback: `/cas/login?service=${service}`
        }
    });

    return extractStart(await getDOM({ url: url + account.value + '.html', jar, asIs: true }));
}

module.exports = login;