Desarrollo de juegos - Registro de usuario y gestión de bases de datos (se necesita consejo)

Hola a todos, espero que estén bien.

Esto es solo una solicitud general de ayuda con la dirección: queremos usar el registro / la gestión de usuarios / la base de datos de Discourse para registrar los mismos detalles en nuestra base de datos de juegos externa (para que el jugador pueda usar los mismos detalles de inicio de sesión para iniciar sesión en el juego).

Actualmente estoy revisando el repositorio de git para tener una idea de cómo funcionan las cosas, etc.

El plan general, como se mencionó, es que cuando un usuario se registra en el foro, Discourse registrará los detalles del usuario en nuestra base de datos de juegos (alojada en otro vps). Si actualizan su contraseña o correo electrónico, eso también se reflejará en nuestra base de datos SQL.

Ya tengo un foro de Discourse autoalojado en funcionamiento desde hace unas horas, así que todavía estoy aprendiendo Discourse en este momento.

Entonces, mi pregunta es, ¿hay algún lugar en el que debamos mirar primero en Discourse para comenzar a trabajar en esto?

1 me gusta

Las palabras mágicas son “DiscourseConnect” y “proveedor de identidad” :wink:

4 Me gusta

Genial, ¡gracias por enviarlo!

3 Me gusta

Parece que SSO / DiscourseConnect necesita que los correos electrónicos sean validados por un tercero.

Esto es un problema para nuestra configuración particular, ya que nos gustaría que Discourse manejara la validación de correos electrónicos y la gestión de cuentas como de costumbre, pero solo pasar la información de la base de datos a nuestra base de datos de juegos.

Así que, en esencia, una inversión de lo que es SSO.

Simplemente: Discourse necesita manejar todo, solo necesito obtener parte de la información del usuario de su base de datos.

Cuando usas Discourse como proveedor de identidad, como sugirió Richard, Discourse se encargará de la validación del correo electrónico por ti.

Cuando el usuario pasa por el flujo SSO en Discourse y luego regresa a tu sitio web, puedes usar la respuesta que Discourse agrega como una cadena de consulta incrustada al parámetro sso, que contiene el correo electrónico, nombre de usuario, nombre, grupos, etc. (pero no la contraseña, eso no sería una buena idea), que puedes extraer y validar correctamente usando el sig proporcionado.

2 Me gusta

Hm, está bien.

Entonces, como se mencionó, no es un sitio web al que Discourse enviará la información.

Es un servidor de juegos, es decir, solo un VPS con MySQL ejecutándose en él.

El flujo de trabajo anterior era este:
Unity poblaba las tablas SQL cuando los usuarios “registraban una cuenta”.

Lo que estoy buscando hacer es usar Discourse como el proveedor de registro y administración de cuentas.

Es decir, se registran con Discourse y usan esta información para iniciar sesión en el servidor de juegos (a través del cliente Unity).

Por lo tanto, necesito una forma de transferir de manera confiable los datos de usuario de Discourse a la base de datos MySQL.
(Ambos están en la misma máquina).

Para esto, hemos configurado un envoltura de datos externos para Postgres → MySQL, y luego disparadores para poblar adecuadamente.

Luego, cuando el usuario ingrese su correo electrónico y contraseña (de Discourse) en el juego, podrá iniciar sesión, teóricamente.

El otro problema sobre el que he leído recientemente fue el hash de contraseñas utilizado por Discourse (lo cual es bueno por muchas razones), pero significa que los hashes son únicos, por lo que no se puede hacer de esa manera.

Entonces, nuevamente, no hay un sitio web para el SSO, solo Discourse y otro VPS que ejecuta el servidor de videojuegos al que se conectan los clientes.