Best practice per inviare dati a webhook senza reindirizzamenti multipli

0

Sto costruendo un sistema di pagamento per alcuni ebook con Reactjs sul frontend, Firebase come hosting e database e funzioni cloud sul lato back-end. I clienti non hanno bisogno di un account per acquistare ebook in modo che non abbiano effettuato l'accesso o non ottengano un account.

A questo punto ho un modulo per il loro nome, cognome e email e un campo nascosto con l'ebook che vogliono acquistare. questo è il primo passo. Dopo aver inviato il modulo, sto verificando se tutto è valido. Quando tutto è valido, voglio inviare i dati al server. Voglio anche controllare i dati (non si sa mai se qualcuno sta cambiando il codice in primo piano). Quando il controllo del server è completo e valido, è necessario effettuare una push al database. A questo punto, viene creata una nuova voce con una chiave univoca. Per tutto il tempo, l'utente si trova su una pagina reindirizzata (qualcosa come www.mydomain.com/addNewCustomerInformation (per inviare informazioni al mio server) (Nota: l'url è un reindirizzamento da https://us-central1-<projectname>.cloudfunctions.net/addNewCustomerInformation )) con un'icona di caricamento.

Ora che le informazioni di base sono note e inserite nel database, viene effettuato un altro reindirizzamento per inviare l'utente a una pagina di conferma. Per prima cosa l'utente deve controllare se le informazioni sono corrette, in secondo luogo deve scegliere un'opzione di pagamento (sto usando Stripe). Le opzioni sono Alipay, iDeal, bancontact, bitcoin e carta di credito. Quindi sto avendo un sistema più complesso di esempi che usano solo la carta di credito. Perché ci sono alcuni esempi di carte di credito, andrò avanti per iDeal.

Quando l'utente ha controllato le sue informazioni (Non è con un pulsante di conferma. Puoi modificare le tue informazioni se c'era qualcosa di sbagliato.) e cliccato sul pulsante iDeal una fonte Stripe deve essere fatta e con un reindirizzamento l'utente essere guidato attraverso i passi iDeal. La parte di pagamento funziona già, quindi salterò questa cosa. Dopo il pagamento, l'utente riceve una mail con un link 72h per scaricare l'eBook ordinato. Questo è per motivi di condivisione della sicurezza. Dopo 72 ore il link deve scadere (come posso fare?).

Quindi ecco le mie domande:

1) La parte era che reindirizzavo l'utente a un altro url in modo che io possa fare un post sul mio server (webhooks), lasciarli aspettare con un'icona di caricamento e fare un altro reindirizzamento quando sto recuperando i dati dal server sembra molto sporco per me. Qual è un modo migliore per farlo?

2) Come posso far scadere l'url dopo 72 ore? (quindi, come posso rendere scaduto l'ID univoco presente nel database dopo 72 ore)

    
posta Thore 29.07.2017 - 23:17
fonte

1 risposta

1

1) Non hai davvero bisogno del reindirizzamento. Chiedi al cliente di fare un post ajax su un'API.

2) Aggiungi il tempo OrderDate alla riga. quando viene richiesto il collegamento per il download, controlla che l'ora corrente sia inferiore a 72 ore dopo l'ora dell'ordine.

Il link dell'ordine può essere una pagina generata lato server. imposta semplicemente il tipo di mine in modo che il browser scarichi un file invece di provare a renderizzare html.

re: sicurezza senza accesso.

Se ci pensi, hai l'indirizzo email degli utenti e puoi inviare loro un link. Quindi hai un modo per verificare l'utente.

Invece di un limite di tempo di 72 ore è possibile inviare loro un collegamento 1 uso. il codice lato server lo contrassegnerebbe quando viene servito.

Oppure, potresti implementare un login in cui invece di richiedere una password, l'email inviata a uno simile usa un link casuale all'utente. In sostanza stanno reimpostando la password ogni volta che accedono.

Ciò ti consentirebbe di implementare un'area ordini precedente che potrebbero utilizzare per riscaricare i loro acquisti.

Oppure potresti inviarli via email al libro ...

    
risposta data 30.07.2017 - 10:55
fonte

Leggi altre domande sui tag