Sugerencia para mejorar el desarrollo de Integrated Authentication

Como dijo Jeff Atwood, el correo electrónico es el núcleo de Discourse y no deberíamos, ni podríamos, ignorarlo ni omitirlo.

Sin embargo, el mundo real puede ser más desordenado de lo que imaginamos; algunas plataformas no proporcionan una dirección de correo electrónico y aun así queremos integrarlas en nuestro Discourse. La solución discourse-oauth2-basic es

discourse-oauth2-basic es un plugin OAuth2 de propósito general, por lo que no incluye ninguna función específica para una plataforma determinada. No obstante, cuando desarrollamos un autenticador específico para una plataforma y no se proporciona una dirección de correo electrónico, podríamos querer integrar el sistema de notificaciones de esa plataforma en lugar de las notificaciones por correo electrónico predeterminadas.

Mi solución propuesta consiste en crear una dirección de correo electrónico falsa para la identidad única, como prefijo-plataforma + id-plataforma@yourdiscours.com, un validador de correo electrónico para decidir qué sistema de notificaciones debe utilizarse, o algunos hooks y filtros para construir el remitente al enviar una notificación, ya sea la notificación por correo electrónico predeterminada o la implementada por el autenticador. Creo que se trata de una implementación no invasiva para la arquitectura existente.

1 me gusta

Eso es completamente factible. Por ejemplo, puedes tener un inicio de sesión con Steam (que no proporciona correo electrónico), establecer correos electrónicos falsos en una versión modificada del plugin y utilizar notificaciones push nativas (disponibles en Windows, macOS, Linux y Android) para todas las necesidades de notificación.

Siempre requerirá algo de trabajo personalizado para integrarse con la plataforma específica, y en Discourse tenemos algunos clientes que utilizan una configuración así con gran éxito. ¡Son algunas de las instancias más grandes que existen!

4 Me gusta

Sí, pero parece que Discourse envía la notificación de exportación directamente a través de Email::Sender mediante una codificación fija, en lugar de invocar un gancho de evento de notificación como DiscourseEvent.

Entonces, ¿cómo se puede “redirigir” la notificación a nuestro sistema de notificaciones personalizado? ¿Hay algún ejemplo público?

1 me gusta