ヘッダーボタンの拡張

こんにちは。Discourseフォーラムを引き継ぎましたが、確立されたものです。「アカウント作成」ヘッダーボタンの機能を変更したいと思います。

ボタンを検査するためにEmber Chromeプラグインをインストールすることに成功しました。これにより、パスが明らかになりました。

​/​var​/​www​/​discourse​/​app​/​assets​/​javascripts​/​discourse​/​node_modules​/​.embroider​/​rewritten-app​/​components​/​header​/​auth-buttons.js

これが関連するJSであると思いますが、確信はありませんか?

フォーラムの管理パネルにアクセスでき、「コンポーネント」をドリルダウンできますが、これらのボタンのエントリが表示されません。「テスト」コンポーネントがいくつか使用されているのを見つけ、それらの1つを有効にして、auth-buttons.gjsファイルのコンテンツを共通ヘッダーセクションにコピーしようとしましたが、保存しようとするとエラーが発生しました。

したがって、私の質問は、これらのボタンの機能を拡張およびカスタマイズするにはどうすればよいかということです。

よろしくお願いいたします。

こんにちは、これらのボタンで何をしようとしていますか?

ユーザーにはメインサイトから登録してもらい、フォーラムではそのアカウントでログインできるようにします。

SSOをぜひご利用ください。正しく設定すれば、DiscourseはSSOプロバイダーに自動的に適応します。

「いいね!」 5

SSOはすでに利用しています。フォーラムはメインサイトと同じプロバイダー経由でユーザーを認証します。しかし、ユーザーがフォーラムでアカウントを登録する際に、メインサイトにリダイレクトさせたいと考えています。このための最善の方法は何でしょうか?

本当にそれで良いのか、完全に確信していますか? ユーザーの視点から見ると、誰かが彼らを騙そうとしているように思えます。フォーラムに興味を持って登録したのに、実際には別の場所に連れて行かれるのですから。

「いいね!」 1

認証の他のすべての方法(ローカルログインを含む)を無効にし、ログインオプションとしてSSOのみを残します。これにより、ユーザーは自動的にメインサイトへのログインにリダイレクトされます。

「いいね!」 4

正しく設定すれば、サインイン後にリダイレクトされるはずだと信じています。

認証は機能します。「サインアップ」ボタンをメインサイトに移動するようにカスタマイズしたいのです。

それは私が上記で提案したことです。

「いいね!」 2

私も賛成です。適切に設定されていれば、すぐに利用できるログインボタンとサインアップボタンはメインサイトに移動します。デフォルトのUIをいじる必要はありません。

「いいね!」 1

サインアッププロセスの外部URLを指定できるオプションが管理画面のどこかにあるはずですよね?

いいえ、それらのパラメータはSSOプロバイダーから提供されます。Discourseはヘッダーに「ログイン」ボタンを表示し、ユーザーをSSOプロバイダーによって提供される認証エンドポイントに送信するだけです。

もしそうならすごいですね…似たような解決策を何度も見てきました。主な目的は、販売が行われるメインサイトにユーザーを恒久的に転送することです。しかし、Googleが行っているような、承認のために短い迂回路を取り、その後フォーラムに戻ってくるような目的であれば、完全に素晴らしいです。

「いいね!」 1

こんにちは :wave:

カスタムサインアップボタンを追加できるテーマコンポーネントを以下に示します。新しいコアの変更に対応するために、今更新しました。

ローカルログインが無効になっている場合、ボタンは直接SSO認証に移動しますか?

はい。SSOが唯一の認証方法である場合に発生することです。

「いいね!」 1

わかりました。SSOは認証のみに関係している場合、アカウントを作成する際にメインサイトに移動する必要がある場合、どのように役立ちますか?

SSO が正しく構成されると、サインアップ ボタンは表示されなくなります。その後、@Don が上記でリンクしたコンポーネントを使用して、カスタム アカウント作成ボタンを追加できます。