più app di frontend 1 backend api

1

Ho bisogno di costruire alcuni (2-3) sistemi diversi (frontend), avranno usi e utenti diversi, tuttavia i dati per tutti questi sistemi sono in 1 DB.

Esempio: Il primo sistema è un sito rivolto al cliente Il secondo sistema è un'app mobile rivolta al cliente (Android e iOS) (simile al sito ma può avere visualizzazioni / dati diversi) Il terzo sistema è un'app di backoffice in cui gli amministratori possono gestire i clienti

dato che i dati sono in 1 DB, stavo progettando di creare 1 API di backend per supportare tutti i frontend.

tuttavia più cerco di pianificare la parte di autenticazione e autorizzazione (come i frontend parleranno con il backend) è troppo complicato.

Sto spingendo per 1 backend api per prevenire la duplicazione di codice / funzionalità o problemi di differenze, ad esempio "modifica cliente" contiene molti passaggi ed è possibile tramite ogni frontend. non voglio avere 3 versioni incoerenti della stessa funzione.

qualcuno aveva esigenze simili e trovato una buona soluzione?

il mio problema principale al momento è il modo in cui proteggi determinate funzionalità in ogni app, proteggendo le rotte API per utente + frontend.

Sono aperto a suggerimenti su quale tecnologia frontend utilizzare, il backend è nodejs

grazie

    
posta BugzyB 13.08.2018 - 13:43
fonte

3 risposte

1

Non vedo alcuna differenza tra l'utilizzo di un back end per più front-end e la scrittura di ciascun front end del proprio back-end. Non farò un suggerimento sul front-end, però, angularjs è molto facile da usare con le classi ecc., Ma se puoi, usa l'ereditarietà per il tuo back-end.

Scrivi una classe genitore con funzionalità comuni ed eredita da quella per ogni back-end, (come, avrai ancora 3 classi, ma la seccatura sarà meno) secondo me. In questo modo non devi duplicare la stessa funzione ma, quando necessario, puoi specializzarti.

    
risposta data 13.08.2018 - 15:18
fonte
1

Hai tre opzioni.

  1. Fai in modo che tutto il front-end utilizzi lo stesso server di autenticazione. Il back-end può verificare il token e controllare le attestazioni.

  2. Crea il back-end in grado di autenticare le richieste per ciascun front-end. Puoi farlo controllare un insieme di possibili chiavi di firma, per esempio.

  3. Avere un metodo di autenticazione separato per il back-end, ad esempio una chiave API che conosce ogni front end.

    Per nascondere questa chiave agli utenti finali, questo potrebbe richiedere che ciascun front-end abbia un backend semplice che comprenda la sua autenticazione front-end, aggiunge la chiave API segreta, chiama il back-end e restituisce i risultati.

risposta data 13.08.2018 - 15:41
fonte
1

Creerei una singola API di back-end come pianificato e memorizzerò le informazioni sul frontend nell'URL, ad esempio:

link

link

e quindi questa informazione inserirò l'oggetto richiesta (come puoi farlo dipende dalla lingua, dal framework che userai). Lo userei mentre usi i ruoli utente. gli URL possono essere protetti utilizzando queste informazioni. Puoi mettere if else anche nell'api, dove a seconda del frontend l'api deve fare cose o cose diverse in modo diverso.

Saluti.

    
risposta data 15.08.2018 - 00:06
fonte

Leggi altre domande sui tag