ユーザー認証としてdeviseを使用している既存のRailsアプリがあります。談話フォーラムを追加しましたが、すべてがスムーズに進み、サブドメインに常駐しています. https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045の投稿を読みましたが、ユーザーがログに記録した後、デバイス側で何をすべきかまだわかりません既存のレールサイトに。現在、これは私が理解しているプロセスです。
ステップ 1: ユーザーがサブドメインの Discourse フォーラムにアクセスします。ユーザーはログインする必要があるため、ログイン ボタンをクリックします。
ステップ 2: ユーザーは、既存の rails サイトのログイン ページに送信されます。
ステップ 3: ユーザーが rails サイトにログインします。
ステップ 4: ユーザーは、ログインした談話フォーラムのサブドメインにリダイレクトされます。
私の質問は、ユーザーがステップ 3 でログインしたときにサブドメインにリダイレクトされるようにするには、どうすればよいですか? 誰かがこれをうまく実装しましたか? そのウォークスルー ページで次のコード スニペットを見ました。
class DiscourseSsoController < ApplicationController
def sso
secret = "MY_SECRET_STRING"
sso = SingleSignOn.parse(request.query_string, secret)
sso.email = "user@email.com"
sso.name = "Bill Hicks"
sso.username = "bill@hicks.com"
sso.external_id = "123" # unique to your application
sso.sso_secret = secret
redirect_to sso.to_url("http://l.discourse/session/sso_login")
end
end
これは、既存の Rails アプリに追加する必要があるものですか? その情報がURLに含まれているかどうかを解析がチェックし、そうであれば、デバイスのログインプロセスが完了するとリダイレクトされ、そうでない場合は通常どおり機能すると思います。このコードをデバイスファイルのどこかに配置しますか?