authlogic openid auto_register機能は登録を複製しようとします
-
07-07-2019 - |
質問
自分のWebサイトでopenid認証を有効にし、最新のauthlogic_openidアドオンの auto_register
機能を使用しようとしています。
2回目のログインまではすべて正常に機能します。初めてユーザーが作成されてログインしますが、ログアウトして同じOpenID識別子でシステムにログインしようとすると、ユーザー名と他のフィールドが既に取得されており、フォームに以前の値が事前に入力されているというエラーのあるユーザー登録フォームが表示されますopenidで渡されたデータ。
新しいauto_register呼び出しを使用したユーザーセッションモデルを除き、すべてがauthlogic / authlogic openidチュートリアルによって実装されます。
class UserSession < Authlogic::Session::Base
auto_register
end
ご協力ありがとうございます!
解決
ユーザーを2回登録しているようです。 OpenIDプラグインは、ユーザーが登録されているかどうかを知りません。 auto_register
がtrueの場合、毎回SREGを実行します。 openid_identifierでユーザーを検索し、新しいユーザーの場合は auto_register(true)
を送信するたびに auto_register
を呼び出すのではなく、
他のヒント
http://github.com/gaizka/authlogic_openid
が見つかりましたAuthlogic Open ID拡張機能の彼のバージョンはauto_register機能で動作するようです...しかし、SREGから電子メールを正しくキャプチャすることはできません(通常の登録で動作します)。
ここで動作するデモがあります:
http://big-glow-mama.heroku.com/
http://github.com/holden/authlogic_openid_selector_example/tree/with- facebook /