2012-03-08 11 views
2

RailsアプリケーションでGoogleのマルチログインをどのように模倣するのですか?基本的に、私は、ユーザーが2つ以上の完全に異なるリンクされていないアカウントにサインインし、サインアウトせずに毎回切り替えることができるようにする必要があります。ユーザーは、使用したいアカウントごとにユーザー名とパスワードを一度認証する必要がありますが、その後セッションが終了するまでそれらのアカウントに対して再度ログインする必要はありません。RailsとDeviseでマルチサインインを実装する

私はこれをGoogleの実装で推測するpostを見ましたが、Rails 3.1でこれにアプローチする最善の方法についてのヒントがあります。私はCAS pluginでDeviseを使用しています。私は正しいアカウントを選ぶためにcurrent_userメソッドをオーバーライドする必要があると仮定しますが、それ以外のことはわかりません。

これにはスコープを使用できますか?しかし問題は、同時にログインしている任意の数のアカウントが必要なことです。

答えて

1

Deviseはデフォルトでこれを実行せず、あなた自身で実装する必要があります。この問題を解決する最善の方法は、署名されたCookie(cookies.signed)をユーザーのIDで維持することです。

基本的に、ユーザーがサインインするたびに、自分のIDをCookieに追加しますそれがまだない場合(ユーザーがサインインするたびにコールバックコールバックがあります)。

idsを取得したので、サインインした名前をGoogleのような角に表示できます。ユーザーがコーナーの名前の1つをクリックすると、サーバーにIDが渡されます。IDが署名されたCookieに含まれているかどうかを確認し、コントローラーのsign_inメソッドを使用してその新しいユーザーに切り替えます。

関連する問題