2012-11-13 7 views
10

Sto pensando a un sistema di tipi di forum che consentirà agli utenti di pubblicare/modificare post senza un account ma attraverso la verifica della posta elettronica.Qual è il flusso di lavoro per un sistema di 'verifica per e-mail' sicuro?

Compilare quindi il modulo, fornire l'indirizzo di posta elettronica, inviare e quindi ricevere un collegamento in un'e-mail che "attiva" il post. La stessa cosa da modificare. Fai clic su "modifica", ricevi e-mail con link, link ti porta a modificare il modulo.

Sto cercando di capire i passaggi esatti per farlo in modo sicuro. Come posso creare un collegamento che scadrà dopo tanto tempo? Come faccio a garantire che provenga dall'indirizzo email e non solo da qualche bot che cicla attraverso potenziali url?

Qualsiasi aiuto per iniziare nella giusta direzione è apprezzato.

Sto usando python, beuta, postgres su heroku.

+1

Cosa hai provato? – lolopop

+5

Capisco il tuo tentativo di impedire agli utenti SO di svolgere il mio lavoro per me, ma ho chiaramente notato che sto semplicemente cercando una direzione generale su come funziona questo tipo di sistema. Ho pensato che sarei venuto a chiedere agli esperti di capire prima di sprecare il mio tempo 'cercando' di fare qualcosa per errore. – chrickso

risposta

13

Dal momento che si sta utilizzando pallone, si potrebbe desiderare di guardare a questo:

http://flask.pocoo.org/snippets/50/

utilizzando l'esempio dall'alto di collegamento, il flusso di lavoro potrebbe essere qualcosa di simile:

  1. utente entra nel email e posta
  2. Generare il collegamento sicuro utilizzando itsdangerous modulo che può essere legato alla e-mail specifico (spiegato nel snipped sopra)
  3. Una volta che l'utente riceve l'e-mail e l'URL specifico generato al punto 2, è possibile fare clic su di esso per confermare il post. Potresti anche aggiungere un ulteriore livello di controllo quando l'utente fa clic su questo URL, dove potresti chiedere di inserire nuovamente il loro indirizzo email e confrontarlo con l'e-mail legata all'URL.