summaryrefslogtreecommitdiff
path: root/alarm/node_modules/pronote-api/src/fetch/pronote/auth.js
blob: 9c1d56623d14a160e69763e6139bc2d238bf39e7 (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
32
33
34
35
36
37
38
39
40
41
42
43
const request = require('../../request');
const { cipher } = require('../../cipher');

async function getId(session, username, fromCas)
{
    const { donnees: id } = await request(session, 'Identification', {
        donnees: {
            genreConnexion: 0,
            genreEspace: session.type.id,
            identifiant: username,
            pourENT: fromCas,
            enConnexionAuto: false,
            demandeConnexionAuto: false,
            demandeConnexionAppliMobile: false,
            demandeConnexionAppliMobileJeton: false,
            uuidAppliMobile: '',
            loginTokenSAV: ''
        }
    });

    return {
        scramble: id.alea,
        challenge: id.challenge
    };
}

async function getAuthKey(session, challenge, key)
{
    const { donnees: auth } = await request(session, 'Authentification', {
        donnees: {
            connexion: 0,
            challenge: cipher(session, challenge, { key }),
            espace: session.type.id
        }
    });

    return auth.cle;
}

module.exports = {
    getId,
    getAuthKey
};