Постарайтесь реализовать это так, чтобы это было понятно и удобно для нетехнических пользователей. Существующие платформы, такие как Disqus и комментарии Facebook, вероятно, могут служить хорошими примерами.
Дополнительные варианты аутентификации:
- сайт-клиент становится клиентом DiscourseConnect. Это относительно просто реализовать, но требует добавления кода на стороне сервера на сайт-клиент.
- пользователи аутентифицируются на клиенте, а их статус аутентификации передаётся в iframe с помощью API postMessage: Window: postMessage() method - Web APIs | MDN
- пользователи входят напрямую в Discourse через iframe
Моя неохота разрабатывать это исключительно на стороне клиента была связана с опасениями относительно масштабируемости системы. По сути, мне приходилось выстраивать запросы к API в очередь и обрабатывать ответы от этих запросов. Это не казалось достаточно надёжным решением для работы, например, с 1000 одновременными пользователями. У меня были бы аналогичные опасения и при использовании подхода с JavaScript-виджетом, но по другим причинам. Однако я полагаю, что с этим будет гораздо проще справиться, чем пытаться синхронизировать всё на стороне клиента.