Litarvan / pronote-api

(Tout langage) API compatible Pronote 2020/2021
194 stars 87 forks source link

Ajout d'une fonction getCas() #90

Closed Androz2091 closed 4 years ago

Androz2091 commented 4 years ago

Il serait utile d'ajouter une fonction getCas() qui prendrait en paramètre une URL Pronote et qui retournerait un nom de CAS (possible avec un follow redirects pour voir sur quelle URL on est redirigé pour la connexion). (j'en ai parlé avec @Litarvan mais j'ouvre quand même cette issue pour qu'on puisse en discuter ici)

busybox11 commented 4 years ago

Tu es sûr que c'est possible ? À moins d'avoir une base de données des CAS pour chaque instance Pronote, je vois pas comment on pourrait faire ça

Androz2091 commented 4 years ago

Oui c'est possible, on peut récupérer le domaine à partir du serveur pronote en regardant sur quel CAS on est redirigé pour la connexion

const { https } = require('follow-redirects')

const request = https.request({
    host: '0310047h.index-education.net',
    path: '/pronote'
}, response => {
    console.log(response.responseUrl)
    // https://cas.mon-ent-occitanie.fr/login?service=https:%2F%2F0310047H.index-education.net%2Fpronote%2F

    // donc ce lycée fonctionne avec le CAS mon-ent-occitanie
})
request.end()
Litarvan commented 4 years ago

Oui c'est possible, j'ai moi même proposé cette idée à Androz, je vais m'occuper de ça dans la semaine :)

busybox11 commented 4 years ago

Oh nice ! Je savais pas.

Litarvan commented 4 years ago

Ajouté !