Me gustaría configurar SSO con GitHub OAuth. Cuando el usuario inicie sesión en mi sitio a través de GitHub, también debe iniciar sesión en Discourse. Los comentarios de Discourse están incrustados en el sitio.
¿Cómo procedo con esto?
Me gustaría configurar SSO con GitHub OAuth. Cuando el usuario inicie sesión en mi sitio a través de GitHub, también debe iniciar sesión en Discourse. Los comentarios de Discourse están incrustados en el sitio.
¿Cómo procedo con esto?
Para la conexión OAuth2 a tu propio sitio, puedes usar este plugin:
“Iniciar sesión con GitHub” está integrado en Discourse y puedes encontrar las instrucciones de configuración aquí:
Todavía estoy confundido.
En caso de que no fuera claro, tengo
Un sitio web con OAuth de GitHub.
Discourse con OAuth de GitHub.
Ninguno de ellos tiene otros métodos de inicio de sesión.
Cuando un usuario inicia sesión en mi sitio web, también debería iniciar sesión en Discourse.
Lo que me falta es el vínculo entre ambos. ¿Cómo puedo iniciar sesión en Discourse cuando se autentican a través de OAuth de GitHub en mi sitio web?
Cuando alguien inicia sesión en tu sitio web, la única comunicación que ocurre es entre GitHub y tu sitio web.
Es decir:
Tu sitio web llama a GitHub para consultar si un usuario existe en su base de datos de usuarios.
GitHub responde afirmativamente (o negativamente) y devuelve los datos del usuario o el token de autenticación según lo solicitado por tu sitio.
Ahora, el usuario ha iniciado sesión en tu sitio.
No hay ninguna interacción con Discourse en esta ecuación. Lo que necesitas aquí es una forma de informar a Discourse que el usuario dado acaba de iniciar sesión y también debe iniciar sesión en Discourse.
Lo que necesitas es una manera de encolar el inicio de sesión en Discourse junto con el inicio de sesión en tu sitio web, para que Discourse sepa cuándo un usuario ha iniciado o cerrado sesión.
Auth0 lo hace bastante bien de forma predeterminada.
Otra opción es utilizar Discourse como tu servidor SSO.
¡Gracias por las respuestas!
Pensé que el plugin de autenticación que uso en realidad funciona a través de OAuth y proporciona un JWT. Creo que la cosa de discourse-jwt debería funcionar para mí.