vendredi 31 janvier 2020

What is an optimal back-end infrastructure of web service fetching data from DB to visualize them on a map?

I am working on a web service which aims to show the user a map in a browser with trajectories of animals plotted and some control widgets (this is a web service for researchers doing wildlife tracking). Each user has MySQL DB with all locations of different animals as rows in a table (each row has tracker id, time stamp, latitude/longitude etc). The rest of web service is being under development with some pieces done and other not. I am not a web developer and struggling with conceptualizing the design of the service.

What is the most optimal design of this infrastructure to deliver the following functionality:

1) User registration, logging, storage of credentials, compliance with GDPR

I'd imagine that I have a php script accessible by e.g. https://my-service.com/registration.php An unregistered user starting with my service will type the url in a browser to register and create a user name and a password saved in the users' DB of credentials. At some point a mail service will send an automatic email to the user to verify his/her email address. If all went well the user will receive another email with a confirmation of successful registration, a login and a password saved on the server (could be changed later).

But how do I arrange this process on the back-end also making my life easier in the light of GDPR? I heard that the best way to outsource the storage of users' credentials to a third-party authentication service.

Is it a good idea to redirect the user going to https://my-service.com/registration.php to some common authentication services which will take care of email verification, registration confirmation and GDPR compliance and data protection. As far as I understand I will have a token for each user (if so how do I create this token automatically and how the authentication service knows what token this user needs). Upon successful registration and logging in the authentication service will send a request with a token to my website so that the user gets access to his/her DB with tracking data. Not sure how it works in detail and therefore would appreciate any feedback.

2) Upon registration and logging in the user will have a front-end GUI in a browser. My developer created this the front-end using Spring framework (not sure how it works though). Upon logging in each user will be redirected to url loading this GUI in a browser where the user has a Google map with trajectories of animals plotted and some control widgets (e.g., a calendar widget for choosing time range or drop down menus to choose devices plotted). If the authentication service sends the user back to my server with a token then GUI application loads the interface into the user's browser and this GUI application has permission to read-only access to a user-specific DB for filtering out which data from DB are visualized.

I wonder how the above functionality should be designed on the back-end? At the moment I have a very fuzzy idea how to deliver this service. Feel free to direct me to completely different routes from described above.




Aucun commentaire:

Enregistrer un commentaire