background image

 

Νικόλας Ψύλλου, Σχεδίαση και Υλοποίηση διαδικτυακής πλατφόρμας για 
εξυπηρέτηση παιχνιδιών καρτών απομακρυσμένων παικτών
 

 

Πτυχιακή / Διπλωματική Εργασία 

 

82 

 

Εικόνα 31 - Στιγμιότυπο από την σελίδα Login 

 
 

Αφού ο χρήστης εισέλθει στην πλατφόρμα, το backend επιστρέφει στο frontend 

ένα  κρυπτογραφημένο  κλειδί  που  από  αυτό  το  σημείο  και  έπειτα  σε  κάθε  κλήση  του 
χρήστη  προς  τον  διακομιστή  θα  πρέπει  να  ενσωματώνεται  στο  αίτημα.  Αυτό  το  κλειδί 
περιέχει στοιχεία του χρήστη που χρησιμοποιούνται για την ταυτοποίηση του χρήστη με 
τον διακομιστή.  
 

Στο backend υπάρχει ενδιάμεσο λογισμικό (middleware) που μέσω αυτού γίνεται 

η  ταυτοποίηση  του  χρήστη.  Η  Nest.js  παρέχει  φρουρούς  (guards)  ώστε  να 
χρησιμοποιούνται οι κατάλληλοι στα  APIs ανάλογα με την πρόσβαση που έχει ο ρόλος 
του κάθε χρήστη. Οι φρουροί που χρησιμοποιήθηκαν στην υφιστάμενη πλατφόρμα είναι 
οι εξής:  
 

•  Ταυτοποίηση JWT  

Όταν  γίνεται  η  κρυπτογράφηση  του  JWT,  προσθέτετέ  μια  συμβολοσειρά  ώστε  να 
διασφαλιστεί  ότι  το  JWT  δημιουργήθηκε  από  την  υφιστάμενη  πλατφόρμα.  Αυτός  ο 
φρουρός ελέγχει αν το JWT που παρέχει ο χρήστης στο αίτημα του είναι το ίδιο με την 
συμβολοσειρά που το δημιούργησε μέσω των πακέτων passport και passport-jwt. 
 
Κώδικας:     

@

Injectable

() 

export

 

class

 

JwtStrategy

 

extends

 

PassportStrategy

(Strategy) 

{

 

    

constructor

()

 

{

 

        

super

(

{

 

            jwtFromRequest

:

 ExtractJwt

.

fromAuthHeaderAsBearerToken

()

,

 

            ignoreExpiration

:

 

false

,

 

            secretOrKey

:

 process

.

env

.

JWT_SECRET

,

 

        

}