DiscourseConnect プロバイダーに関する質問

DiscourseConnect Provider を有効にしようとしていますが、いくつか質問があります。

  1. これを有効にした後も、ユーザーになりすましたり、Discourse 内のすべてのユーザー管理コントロールにアクセスしたりできますか?

  2. Discourse には既に存在するが、WP には存在しないユーザーはどうなりますか? アカウントは影響を受けますか? WP に実際に存在しない場合、どの認証情報を使用してログインしますか?

  3. WP でサインアップした後、Discourse にリダイレクトするサインアップ ボタンを Discourse ウェブサイトに追加するにはどうすればよいですか?

  4. この設定が有効な場合でも、ユーザーが Discourse でのみサインアップする方法はありますか?

よろしくお願いします!

はい、招待などのユーザー作成に関わるものを除き、可能です。

同じアドレスでWPにログインできるのであれば、問題ないと思います。そうでなければ、存在しません。

ログインボタンは、巧妙にWPサイトに誘導します。

いいえ、できません。

「いいね!」 2

これはどういう意味ですか?

そこで、これをテストしてみました。Discourseには存在するがWordPressには存在しないアカウントを使用してログインしようとしたところ、WPから以下のエラーが表示されました。


Screenshot 2023-07-01 220024

WPの観点からすると、ユーザーが実際にWPに存在しないため、これは理にかなっていると思います。
質問ですが、DiscourseConnect Providerを有効にすると、WPに登録されていない既存のDiscourseユーザーはログインできなくなりますか?
これに対する解決策はありますか?

ログインボタンをクリックするとWPに移動します。

はい。それらのユーザーを WordPress で作成する必要があります。

あなたが提案したことについて、さらに詳しく説明した以下の回答を見つけました。

しかし、現在のDiscourseのログイン認証情報に影響を与えることなく、それらをWPにインポートするにはどうすればよいですか?
ユーザーのログインをリセットしたり、通知したりすることなく、シームレスに切り替える方法はありますか?

それは疑問ですね。WordPressから移行されたパスワードを許可するDiscourseプラグインがありますが、その逆を行うプラグインがあるかどうかは疑問です。全員にパスワードのリセットを依頼する必要があります。

WordPressのログインを使用しなくなるまで、WordPress上のアカウントはDiscourseに影響しません。

「いいね!」 1

アイデアがあります。

WordPressをDiscourseクライアントとして有効にし、以下の自動化スクリプトを作成したらどうでしょうか。

  1. Discourse上のユーザーアカウントを偽装し、自動化がそのユーザーとしてログインするようにします。

    • WordPressに移動し、「Discourseでログイン」ボタンをクリックします。
  2. Discourse上に存在するすべてのユーザーに対して繰り返します。約2,000ユーザーです。

このアイデアは、ステップ#2で、WPがDiscourseユーザーのアカウントを同じ認証情報で作成することを強制するというものです。また、「Discourseでログイン」ボタンは、ユーザーになりすましてログインしている場合、パスワードを求めずに自動的に機能すると仮定しています。

これが完了すると、すべてのユーザーのカウントがWP内に存在し、その後WPをDiscourseプロバイダーに切り替えることができますか?

理論的には理にかなっているように思えますが、これが機能するかどうか、フィードバックをいただけると幸いです。

はい。ユーザーがWordPressに存在しない場合、WordPressにログインすることはできません。

何もなりすます必要はありません。

WordPressを認証ソースとして使用したい場合

  • WordPressですべてのユーザーを作成します。WPのメールアドレスがDiscourseと一致することを確認してください。
  • DiscourseをDiscourseConnectホストとしてWPを使用するように切り替えます。

WordPressでパスワードをリセットしてもらう必要があります。

WordPressへの認証の移動は、どのような問題を解決するのでしょうか?これを実行したことを後悔すると思います。

当社のウェブサイトでは、複数の有料会員コースやイベントが開催されており、WPとDiscourse間のシームレスな統合を実現したいと考えています。

これを行うことのデメリットは何ですか?また、なぜそのように言うのですか?

承知いたしました。WordPressにDiscourseユーザーがいる場合、それらのユーザーすべてにWordPressのアカウントを作成する必要があります。同じメールアドレスで作成した場合、ログイン時にDiscourseユーザーと連携されるはずです。

他に言うべきことが思いつきません。

「いいね!」 1

Jayが指摘したように、これを実現する最善の方法は、WordPressサイトをDiscourseのSSOプロバイダーとして設定することです。設定方法の詳細については、こちらのトピックをご覧ください:https://meta.discourse.org/t/configure-single-sign-on-sso-with-wp-discourse-and-discourseconnect/223494。

WordPressをDiscourseConnectプロバイダーとして設定した後、Discourseにまだアカウントを持っていないユーザーは、Discourseサイトにアクセスする前にWordPressでサインアップする必要があります。Discourseサイトに、この変更についてユーザーに伝えるメッセージを追加する必要があります。メッセージでは、Discourseで使用しているのと同じメールアドレスでWordPressにサインアップするようにユーザーに促してください。そうすれば、WordPress経由でDiscourseに初めてログインする際に、既存のDiscourseアカウントにログインできます。

ユーザーがDiscourseで使用しているメールアドレスでWordPressに登録しない場合、WordPress経由でDiscourseに再度ログインする際に、新しいアカウントが作成されます。この問題は、Discourseの管理ページから、古いDiscourseアカウントを新しいDiscourseアカウントにマージすることで、個別に解決できます。

注意点として、ユーザーが既存のDiscourseアカウントにログインできるという動作は、WordPress側でメールアドレスが「有効」とマークされている場合にのみ機能します。デフォルトのWordPress登録システムを使用している場合、これは問題なく機能します。プラグインによって追加されたカスタム登録ページを使用している場合、ユーザーのメールアドレスは「有効」とマークされない可能性が高いです。この問題の解決方法については、こちらで詳細を確認できます:Configure single sign-on (SSO) with WP Discourse and DiscourseConnect

「いいね!」 4

どうすればわかりますか?

私の登録ページはこちらです:Log In ‹ Project Van Life — WordPress

テーマによってデザインが異なりますが、ログイン専用のプラグインがないことはわかっています。

WordPress のデフォルトの登録システムを使用しているようです。ログインページが wp-login.php にあることから、そのように推測しました。これにより、WP Discourse プラグインはユーザーのメールアドレスを検証済みとしてマークします。

「いいね!」 3

これについての別の質問です。

Discourse Connect Provider を設定した場合、Discourse は WP ユーザーにメール通知を送信しますか?

WP ユーザーだがフォーラムにアクセスしたことがないユーザーの場合と、WP ユーザーでありフォーラムにアクセスしているユーザーの場合、どのように機能しますか?

はい、Discourse は引き続きメールを送信します。Discourse Connect を認証システムとして使用しても、Discourse から送信されるメール通知には影響しません。

WordPress サイトのユーザーで、Discourse にアクセスしたことがないユーザーは、Discourse 上のユーザーとはみなされません。Discourse からのメール通知は一切受信しません。唯一の例外は、WP Discourse の「ログイン時に Discourse ユーザーを作成または同期する」設定を有効にしている場合です。

この設定が有効になっている場合、ユーザーが WordPress サイトにログインすると、Discourse アカウントが自動的に作成されます。その場合、ユーザーが WordPress にログインしたが、Discourse サイトには一度もアクセスしていない場合、その Discourse サイトから週刊ダイジェストメールの受信を開始します。

「いいね!」 3

そこで、これをテストしたところ、そうではないようです。手動で行うことなく、ユーザーのメールが現在検証されていることを確認するにはどうすればよいですか?

また、新規ユーザーはどのようにサインアップし、メールを検証してもらうことができますか?現在、wp-login.php にリダイレクトしていますが、サインアップのオプションはなく、ログインのみです。

フォーラムに「サインアップ」という新しいボタンを作成し、WP 内のカスタムサインアップページに送信することはできますが、その場合、次の問題が発生します。

これに加えて、サインアップ後にフォーラムにリダイレクトし、ログインしていることを確認したいと思います。

ユーザーの観点から物事をより簡単に進められると考えている別の方法も検討しており、ご意見をお聞かせいただければ幸いです。

Discourseの全ユーザーを手動でエクスポートし、WordPressにインポートするのはどうでしょうか。このプロセスにより、

  1. Discourseに存在する各ユーザーのWordPressアカウントが作成されます。

  2. そのアカウントをフォーラムプロフィールにリンクします。

  3. メールアドレスをWPで確認済みとしてマークします。すでにDiscourseユーザーであるため、確認済みとみなすことができます。

  4. フォーラムのパスワードをリセットするようにメールを送信します(ステップ1でリセットされるため)。

これにより、ユーザーは自分で新しいアカウントを作成する必要がなく、パスワードをリセットするだけで済みます。

このプロセスでは、上記の返信で強調した質問/問題は解決されません。

Discourse Connect を有効にした後、WordPress で新しいアカウントを作成することで、メールアドレスが確認されているかどうかを確認できます。メールアドレスが確認されている場合、ユーザーの環境設定ページの下部に確認が表示されます。ここからメールアドレスを手動で確認済みとしてマークすることもできます。

メールアドレスが確認されていないと仮定した場合、ユーザーがアカウントを作成したときにメールアドレスを確認済みとしてマークする方法については、こちらの手順を参照してください: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect サイトがそれを行っていない場合は、ユーザーがコースに登録した後でユーザーのメールアドレスが確認済みとしてマークされるようにコードを追加することもできます。これを設定するには、開発者の助けが必要になる場合があります。

サイトには 2 つの別々のログインページが表示されます。

最も簡単な方法は、サイトにログインページを 1 つだけ作成し、そのページにサイトの登録ページへの有効なリンクを含めることです。これは、ログインフォームを追加しているプラグインの設定ページから実現できると思われます。https://projectvanlife.com/login/ のログインページを使用することを選択した場合、WP Discourse の設定で「ログインページのパス」に /login を追加する必要があることに注意してください。

これはユーザーを混乱させる可能性があると思います。より簡単なアプローチは、ユーザーがリンクをクリックすると Discourse に自動的にログインするように構造化された Discourse フォーラムへのリンクを追加することです。リンクの作成方法の詳細については、こちらを参照してください: https://meta.discourse.org/t/create-a-discourseconnect-login-link/109290。サイトで DiscourseConnect が有効になったら、このリンクも同様に構造化する必要があります。

それは可能です。実行方法の詳細については、こちらを参照してください: How to import Discourse users to WordPress? - #2 by simon

代わりに、「スタッフ」カテゴリにバナー トピックを作成して、変更の詳細を伝える方がはるかに簡単です。スクリーンショットの文言はもう少し改善できるかもしれません。

変更が完了したら、バナー トピックを更新して、ログインで問題が発生した場合は管理者に連絡するようにユーザーに通知してください。

何か役立つことを思いつきました。WordPress サイトを DiscourseConnect プロバイダーに設定するまでの間、Discourse サイトを ウェブサイトDiscourseConnect プロバイダーとして一時的に構成できます。そうすれば、バナー トピックに次のようなものを追加できます。

私が使用した完全なリンクはこちらです。

<a href="http://wp-discourse.test/?discourse_sso=1&redirect_to=http://wp-discourse.test/wp-admin/profile.php" target="_blank">Create an account on (your website name)</a>

それをクリックすると、WordPress で新しいアカウントが登録され、ユーザーはパスワードを設定できる WordPress プロファイルページにリダイレクトされます。この場合、リンク内の http://wp-discourse.test の両方の使用を https://projectvanlife.com/ に置き換える必要があることに注意してください。

「いいね!」 4

@simon 詳細なご回答ありがとうございます。すべて非常に役立ちました!

これは素晴らしいアイデアです!

ユーザーになりすまして、彼らのためにこれを行うとしたらどうでしょうか?問題が発生しますか?

また、WordPressをDiscourse Connectプロバイダーに切り替えた後も、このアプローチでログインパスワードは同じままになりますか?

「いいね!」 3

問題は発生しないと思います。

WordPressをDIscourseConnectプロバイダーとして設定しても、ユーザーのWordPressパスワードは変更されません。

「いいね!」 3