Utilizamos un flujo de SSO de Discourse que hemos implementado basándonos en esta guía: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
Nos ha funcionado bien. Pero ahora queremos permitir que los usuarios en nuestro sistema cambien su correo electrónico, y esto parece generar problemas.
Cuando cambio el correo electrónico de mi usuario en nuestro sistema, el SSO a Discourse deja de funcionar.
Error de inicio de sesión
Hay un problema con su cuenta. Póngase en contacto con el administrador del sitio.
Supongo que Discourse recibe una carga útil con un correo electrónico y un nombre de usuario que no coinciden y no sabe qué hacer.
¿Cuál es una buena manera de manejar esto?
La mejor idea que se me ha ocurrido es utilizar la API de Discourse para cambiar el correo electrónico del usuario en Discourse para que coincida con el de nuestro sistema antes de iniciar el SSO.
Pero no sé si esto es posible. A continuación, mi intento fallido.
Aquí está mi solicitud:
https://forum-stage.{domain}.com/users/{username}/preferences/email
Encabezados:
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Cuerpo (como x-www-form-urlencoded en Postman):
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system
Y aquí está la respuesta que recibo
{
"errors": [
"No tiene permiso para ver el recurso solicitado."
],
"error_type": "invalid_access"
}