summaryrefslogtreecommitdiff
path: root/alarm/node_modules/pronote-api/src/fetch/pronote/auth.js
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/node_modules/pronote-api/src/fetch/pronote/auth.js')
-rw-r--r--alarm/node_modules/pronote-api/src/fetch/pronote/auth.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/alarm/node_modules/pronote-api/src/fetch/pronote/auth.js b/alarm/node_modules/pronote-api/src/fetch/pronote/auth.js
new file mode 100644
index 0000000..9c1d566
--- /dev/null
+++ b/alarm/node_modules/pronote-api/src/fetch/pronote/auth.js
@@ -0,0 +1,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
+};