Estoy creando un sitio web que necesita la autorización del usuario. Es la primera vez que creo un sitio web para publicar, y también la primera vez que intento hacer cualquier tipo de autorización. El siguiente es mi plan, ¿podría decirme si tengo algún agujero de bucle obvio y si hay algo más que deba tener en cuenta? Si me interesa o es relevante, estoy usando un nodo de fondo y backs de mysql tranquilos y backbone en el extremo delantero.
proceso de inicio de sesión:
- El usuario intenta iniciar sesión. Eso envía una dirección de correo electrónico, una contraseña y una clave generada aleatoriamente (no se ha decidido sobre una cantidad de bits).
- El servidor de autorización acepta esta información, cifra la dirección de correo electrónico y la contraseña, y la compara con los valores en la tabla user_auth de la base de datos de autorización. Si hay una coincidencia, crea un ID de sesión.
- El servidor de autorización luego coloca el ID de la sesión, la dirección de correo electrónico y la clave aleatoria generada por el usuario en una fila de la tabla de la sesión (en la base de datos de datos a la que accede principalmente el servidor de datos), y envía al usuario una ID de sesión y cualquier otra otros datos relevantes de la página que se cifran utilizando la identificación de la sesión como clave.
- Si todo esto sucede, el usuario recibe el ID de sesión y descifra los datos adicionales y todos los datos futuros utilizando el ID de sesión.
- En cada acción realizada por el usuario, el cliente enviará la dirección de correo electrónico y la ID de sesión cifradas con la clave generada aleatoriamente original que se envió al servidor de datos, y si la ID de sesión y la dirección de correo electrónico coinciden, los datos se descifran utilizando la clave, y luego se intenta procesar los datos.
Por supuesto, también intentaré sanear todos los datos antes de que se genere una consulta SQL, también habrá validación de formularios en vivo y validación del modelo de red troncal. El usuario de mysql que usarán los servidores de nodejs no tendrá permisos de eliminación que serán atendidos mediante etiquetas y un demonio que se ejecute en el back-end.
Para crear una cuenta:
- El usuario enviará una dirección de correo electrónico, contraseña, nombre, apellido al servidor de autorización.
- El servidor de autorización colocará esto junto con una fecha y hora en una tabla temp_user y un correo electrónico bien redactado estará compuesto con un ID de sesión integrado en la url.
- El usuario hará clic en el enlace del correo electrónico al que irá a una "página de validación de su cuenta" o algo así. Al hacer clic en el enlace, se guardará el valor de id de sesión en el código del cliente y se creará una clave generada aleatoriamente que se envía al servidor. En caso de éxito, mostrará al usuario la página.
- En el lado del servidor, el servidor de autorización colocará el nombre de usuario y la contraseña, cifrados, en la tabla user_auth de la base de datos de autorización, colocará el nombre y apellido en la tabla de usuario en la base de datos de datos y luego eliminará (la única tabla Tendrá permisos de eliminación para la fila correspondiente en la tabla temp_user.
- Ahora el cliente y el servidor deben estar en la misma página que en el primer escenario.
si en algún punto el ID de sesión es nulo o no coincide, se le pedirá al usuario que inicie sesión nuevamente y el proceso comenzará de nuevo.
¿Hay algo que me esté perdiendo?