技術的な知識がないユーザーにも分かりやすいように実装してみてください。既存のプラットフォームであるDisqusやFacebookのコメントなどが良い例になるでしょう。
さらにいくつかの認証オプションを挙げます。
- クライアントサイトをDiscourseConnectクライアントにする。これは実装が簡単ですが、クライアントサイトにサーバーサイドコードを追加する必要があります。
- ユーザーがクライアントで認証を行い、その認証ステータスがpostMessage API経由でiframeに渡されます: Window: postMessage() method - Web APIs | MDN
- ユーザーがiframe経由で直接Discourseにログインする。
クライアントサイドだけで開発することに抵抗があったのは、ある程度の規模でシステムが動作する場合の問題を考慮したためです。基本的に、APIリクエストをキューイングし、キューイングされたリクエストからの応答を処理する必要がありました。例えば、1000人の同時ユーザーを処理するには、十分な堅牢性があるとは感じられませんでした。JavaScript埋め込みアプローチでも、異なる理由で同様の懸念があります。しかし、クライアント側で全てを同期しようとするよりも、はるかに扱いやすいと思います。