background image

Σχεδιασμός και υλοποίηση συστήματος IoT ασύρματου ελέγχου και μέτρησης ενέργειας 

 

41 

 

Η συλλογή users 
 

Σε  αυτή  την  συλλογή,  αποθηκεύονται  τα  δεδομένα  των  χρηστών.  Ο  Πίνακας  2 

απεικονίζει τη δομή του αρχείου καταγραφής (document) ενός χρήστη. 

 

Field 

Type 

Required 

Unique 

Extra 

_id 

objectID 

true 

true 

auto- 

generated 

role 

string 

true 

false 

default: user 

email 

string 

true 

true 

 

password 

string 

true 

false 

 

verification_token 

string 

false 

true 

auto- 

generated 

verified 

boolean 

false 

false 

default: false 

active 

boolean 

true 

false 

default: true 

Πίνακας 2 : Πίνακας δομής του μοντέλου User 

 

❖  Το  πεδίο  _id  είναι  τύπου  objectId,  το  οποίο  σημαίνει  πως  περιέχει:  μια  τιμή 

χρονικής  σήμανσης  (timestamp  -  η  στιγμή  της  δημιουργίας  του),    ένα  τυχαίο 

αλφαριθμητικό (string) και μία αυξανόμενη τιμή (auto-increment). Το πεδίο αυτό 
δημιουργείται αυτόματα για κάθε καταγραφή (document) και είναι μοναδικό. 

❖  Το πεδίο role είναι τύπου string. Είναι απαραίτητο και οι πιθανές τιμές του είναι 

user και admin. Καθορίζει τα δικαιώματα του χρήστη στο σύστημα. 

❖  Το πεδίο email είναι τύπου string. Επίσης είναι απαραίτητο και μοναδικό για κάθε 

χρήστη. 

❖  Το  πεδίο  password  είναι  τύπου  string.  Είναι  απαραίτητο  για  την  εγγραφή  του 

χρήστη  και  δεν  είναι  μοναδικό.  Πριν  αποθηκευτεί  ο  κωδικός  (password) 
κατακερματίζεται (hash) από τον αλγόριθμο bcrypt χρησιμοποιώντας ένα 128-bit 

salt. Ο bcrypt βασίζεται στο κρυπτογράφημα blowfish. 

❖  Το  πεδίο  verification_token  είναι  τύπου  string  και  μοναδικό  για  κάθε  χρήστη. 

Αποστέλλεται  ως  παράμετρος  του  url  στην  ηλεκτρονική  διεύθυνση  (email)  του 
χρήστη, ώστε να επιβεβαιώσει την εγγραφή του.  

❖  Το  πεδίο  verified  είναι  τύπου  boolean.  Η  προκαθορισμένη  τιμή  είναι  false  και 

αλλάζει σε true, όταν ο χρήστης επιβεβαιώσει το email του.  

❖  Το πεδίο active είναι τύπου boolean και η  προκαθορισμένη τιμή του είναι true. 

Προσδιορίζει το αν κάποιος λογαριασμός είναι ενεργός.