Entonces, me preguntaba si esto es algo que podría hacerse, dado cómo está configurada mi comunidad, no quiero que los usuarios puedan desvincular sus cuentas de inicio de sesión social de Discord o Steam. Pude modificar el inicio de sesión de Steam (nadie puede desvincularlo, ni siquiera el personal) ya que es un complemento externo, pero no estoy seguro si hay alguna forma de modificar el de Discord ya que ahora viene incluido con Discourse. ¿Hay alguna forma de cambiarlo para que el botón de desvincular cuenta social solo sea visible/funcione para el personal? Solo en raras circunstancias querría que las cuentas se desasociaran, por ejemplo, si el usuario vinculó la cuenta incorrecta, pero para facilitar la sincronización de rangos con mi Discord, parece extraño que puedan desvincularla por su cuenta. No creo que un complemento funcione en este caso, pero puedo estar equivocado, simplemente no sé cómo se agregaría una función como esta.
Podrías ocultarlo con CSS. Me imagino que quitarles la capacidad de decidir si compartir o no esas credenciales contigo es una violación de los términos de servicio, pero quizás mi imaginación es demasiado salvaje.
Sí, buen punto sobre la parte de los Términos de Servicio, ni siquiera lo había pensado. Sé que en Discord siempre puedes revocar el acceso allí. Tendré que leerlo ahora que lo mencionas. Principalmente no quiero que un usuario desvincule porque uso sus IDs para sincronizar rangos y baneos. Que puedan desasociarlo haría que sea un poco más tedioso banearlos y podría permitir que un usuario sincronice sus rangos en varias cuentas de Discord. Tengo la parte de Steam sincronizada en cada inicio de sesión, así que no hay problemas allí.
EDIT: Sí, leí la documentación para desarrolladores de Discord y no encontré nada que me llamara la atención. Así que creo que está bien proceder. Un usuario siempre puede cortar el vínculo con la aplicación en cualquier momento a través de Discord, pero no estoy seguro de si eso lo desvincula en Discourse o qué exactamente.
Hmm, así que después de investigar más, no creo que esto sea posible sin cambios en Discourse y añadiendo algunas configuraciones adicionales al proyecto principal o mediante el uso de mi propio proveedor social de Discord (lo que puede no ser ideal ya que hay uno incorporado).
No estoy seguro de si esto es algo que el equipo de Discourse soportará o añadirá, pero creo que tendré que crear un sistema externo para mi uso y solo usaré Discourse SSO para asociar un enlace entre Discourse y el otro sistema. Para mis propósitos, solo usaré los inicios de sesión sociales de Discourse para iniciar sesión en Discourse y nada más debido a esta limitación. En lugar de que toda la vinculación y asociación de cuentas se realice a través del perfil de usuario de Discourse, creo que solo necesitaré usar la herramienta diferente mencionada anteriormente que ya estoy usando para verificar cosas que no son posibles a través de OAuth o similar.
No voy a marcar esto como una solución ya que no es realmente una solución directa a mi pregunta original, sino una solución a mi caso de uso particular.
Otra solución podría ser poner el ID en un campo personalizado del usuario y actualizarlo a través de la API. O que un plugin haga eso cuando inicien sesión. (No leí todo el tema detenidamente).
