Επειδή πολλές φορές, τα προγράμματα που κάνουμε απαιτούν κάποια είδους αυθεντικοποίηση, γράψαμε μια υλοποίηση του πρωτοκόλλου CAS 2.0 (όχι ολόκληρου. Υλοποιούμε κατα καιρούς επιπλέον μέρη του πρωτόκολλου όταν το απαιτούν τα πρότζεκτ μας) για δική μας διευκόλυνση.
Με λίγα λόγια: Ένας λογαριασμός, ένα login UI, λιγότερος προγραμματισμός και χειρισμός διαπιστευτηρίων για τα project της ομάδας.
Επειδή δεν θέλουμε να περιορίσουμε την χρήση του cas μόνο στα project μας, ενώ παράλληλα η χειροκίνητη επαλήθευση όλων των services είναι κουραστική και χρονοβόρα για εμάς, κάναμε το CAS να μην ελέγχει την εγκυρότητα του service URL. Αυτό όμως δεν σημαίνει ότι δεν χρειάζεται!
Endpoints:
--- CAS
/api/cas #Root CAS URL
/api/cas/serviceValidate #Χρησιμοποιείται από τις υπηρεσίες (sevices) στο τελευταίο βήμα του CAS flow για να επιβεβαιώσουν τον χρήστη και να αντλήσουν περισσότερες πληροφορίες (name, email, phone, school)
---HTTP API (Χρησιμοποιoύνται κυρίως από το UI.)
/api #Root API URL
/api/login #Παίρνει υποχρεωτικά το email και μετά είτε κωδικό πρόσβασης είτε κάποιο άλλο OAuth credential.
/api/register #Εγγραφή χρήστη στο CAS
/api/emailExists #Επιστρέφει αν το email υπάρχει στη βάση δεδομένων του po/iw, μαζί με εναλλακτικές μεθόδους πιστοποίησης.
/api/activateAccount #Χρησιμοποιείται για την ενεργοποίηση των λογαριασμών έπειτα απο εγγραφή νέου χρήστη.
Το project είναι γραμμένο σε Next.js (React Framework) και συνδέεται σε MongoDB με ενα environment variable MONGODB_URL. Αφού κάνεις git clone και αφού αποκτήσεις πρόσβαση σε κάποια db (δική σου ή της ομάδας), τρέξε:
yarn install #για να εγκαταστήσεις τα dependancies.
yarn dev #για να τρέξεις το πρόγραμμα σε development mode