Non c'è modo di farlo in un modo completamente sicuro, dal momento che non ti puoi fidare del client . Il server non può mai sapere se l'utente ha effettivamente guardato il video o meno. Vorrei sconsigliare di cercare di offuscare il tuo codice o renderlo complicato - alla fine un utente determinato sarà sempre in grado di imbrogliare comunque, e stai solo facendo casino del tuo codice senza alcun beneficio. Dopo tutto, l'utente potrebbe non essere nemmeno davanti al computer mentre suona il video!
Detto questo, puoi rendere più difficile imbrogliare. Ecco alcuni suggerimenti:
- Non inviare
n
. Invece, invia un codice unico al video guardato. Mentre l'utente potrebbe semplicemente cambiare quel codice, almeno non sarebbe in grado di impostarlo su un numero ridicolmente grande e guadagnare miliardi di punti.
- Sul server, salva il tempo in cui l'utente richiede la pagina con un video. Quando il server riceve il messaggio "video guardato", controlla che il tempo trascorso non sia inferiore alla lunghezza del video. Se è così, hai trovato un imbroglione.
- Se trasmetti in streaming il video, verifica che tutti i video siano stati effettivamente scaricati prima di assegnare i punti. Ancora una volta, questo è un controllo che devi fare sul server.
- Infine, se questo è per qualche tipo di scopo educativo, fai un semplice quiz alla fine dove l'utente è tenuto a dimostrare una comprensione di base dei concetti che sono stati disconnessi nel video.