可能ですか?

こんにちは、メンバーの皆さん!
お元気でお過ごしでしょうか。
Discourseフォーラムを1つ構築し、Webサイト(ASP.NET)に接続しようとしました。
最初にDiscourse-Connectを使用し、成功しましたが、それを使用するとユーザーはフォーラムにログインしたりサインアップしたりできません。
そのため、Discourse-Apiを使用してフォーラムにログインしようとしましたが、完了しませんでした。
多くのドキュメントを読みましたが、正しい解決策は見つかりませんでした。
この問題を解決するために誰か助けていただけますか、または可能性、正しい解決策を教えていただけますか。
よろしくお願いいたします。

2つの可能性があります。

  • DiscourseConnect を設定すると、ユーザーはあなたのウェブサイトでサインアップおよびログインし、フォーラムにログインしようとすると自動的に行われます。これは通常のセットアップです。このように設定すると、すべての登録とログインはあなたのウェブサイトで行われます。フォーラムでのユーザー名/パスワードログインと登録は無効になります。

  • DiscourseConnect を設定すると、ユーザーはフォーラムでサインアップおよびログインし、ウェブサイトにログインしようとすると自動的に行われます。これは、Discourse を DiscourseConnect プロバイダーとして設定すると呼ばれ、その方法はこちらで見つけることができます。

「いいね!」 3

迅速なご対応ありがとうございます。
DiscourseConnect を使用しない方法があれば教えていただけますでしょうか。

なぜそれを使いたくないのですか?

もちろん、自分で何かを実装することもできますが、DiscourseConnectの構築に注がれてきた長年の経験を無駄にすることになります。ですから、その巨大なタスクに着手することを決定する前に、利用可能なものを利用するのではなく、自分で何かを構築する正当な理由があるかどうかを決定する必要があります。

「いいね!」 5

もちろん、DiscourseConnectが優れた機能であることは承知しています。
しかし、私の目的はDiscourseフォーラムでのローカルログインとサインアップです。
そのため、Discourse APIを試してみました。
Discourse APIでは可能性はありませんか?
ありがとうございます。
よろしくお願いいたします。

ローカルログインとサインアップをDiscourseで行いたい場合、ウェブサイトとのどのような連携をご希望か教えてください。

「いいね!」 2

私の目的は以下の通りです。

  1. ユーザーがmysiteにログインしている場合、フォーラムにアクセスすると自動的にフォーラムにログインする。
  2. ユーザーはフォーラムにログインおよびサインアップできる。
  3. ユーザーがフォーラムにログインしている場合、mysiteにアクセスすると自動的にmysiteにログインする。
    DiscourseConnectを使用すると、1)と3)を実行できますが、2)は実行できません。
    しかし、2)は私たちにとって非常に重要です。

ユーザーが2か所で登録できるようにすると、すぐに混乱が生じるため、ウェブサイトで登録するか、フォーラムで登録するか、どちらか一方を選択する必要があります。両方で行うことはできません。

これはなぜそれほど重要なのでしょうか?

「いいね!」 3

ご協力ありがとうございます。
しかし、上司がそれを求めています。
私のパフォーマンスを確認してください。
以下のようにDiscourse APIで実行しようとしました。

  1. GET '/session/csrf’を呼び出し、csrfトークンとCookieを取得します。
  2. POST '/session’をHeader:‘X-CSRF-Token’=‘csrfトークン’, ‘Cookie’ = ‘取得したCookie’, Data: login, password, timezone, second-factor-method, authenticity-token で呼び出します。
  3. POST ‘/login’をHeader: ‘Cookie’=’/sessionから取得したCookie’ で呼び出します。
    Data: username, password, redirect

すべてのログはDiscourseログインワークフローと同じです。
しかし、Discourseフォーラムにリダイレクトしても、ユーザーはログインしていません。

この問題をどのように解決できますか?何が間違っていますか?

再度ご協力ありがとうございます。

追伸:私のサーバーはUbuntu Nginxサーバーです。

それから、複数の場所でユーザーが登録できるようにするのは非常に悪い考えであることを、上司に説明する必要があります。それは非常に厄介な事態を招きます。ウェブサイトでユーザー名Aで登録し、フォーラムで同じメールアドレスでユーザー名Bで登録した場合に何が起こるかを説明してください。あるいは、ユーザーがパスワードをウェブサイトのみで、またはDiscourseのみで変更した場合にどうなるでしょうか。そうなると、問題が発生します。

あなたがやったことは、あなたのサーバーをユーザーとしてフォーラムにログインさせることです。ユーザーのセッションCookieは設定されないため、ユーザーはフォーラムにログインできません。

さらに、ユーザーのプレーンテキストパスワードが利用可能になっているようです。これは非常に悪い考えです。パスワードは常にハッシュ(一方向暗号化)で保存し、プレーンテキストパスワードは決して保存してはいけません。データベースがハッキングされた場合、ユーザーのすべてのパスワードが攻撃者に知られてしまいます。これも上司に説明すべき良い点です。

上司を説得して、物事を違うやり方にするために使える、良い理由を3つ挙げました。これは単に大きな問題につながるだけです。これが機能するように協力することはできません。なぜなら、それは機能しないからです。たとえ機能したとしても、それは短期的なものにすぎません。

「いいね!」 6

承知しました。
これらについて上司に説明します。
本当にありがとうございます。
この件とは関係ありませんが、もっとお話ししたいです。
よろしくお願いいたします。

もう一つお願いします。
私のフォーラムサーバーには、1つのメインドメインと複数のサブドメインがあります。
1つのデータベースを使用して、各ドメインに複数のDiscourseフォーラムを構築できますか?
そして、このように構築できますか?
-メインドメインでは、ローカルログインとサインアップが可能です。
-サブドメインでは、DiscourseConnectを使用して私のサイトに接続します。
可能であれば、構築方法を教えてください。
不可能であれば、その理由を教えてください。
ありがとうございます。

はい、可能です。

  • このフォーラムで「multisite」を検索してください。
  • メインサイトをDiscourseConnectプロバイダーとして設定します。
  • サブドメインサイトをDiscourseConnectクライアントとして設定します。
「いいね!」 3