Rails アプリケーションに 'omniauth' と 'omniauth-openid' gem を使用しています。ログインは期待どおりに機能し、openId プロバイダーからのコールバック後に新しいセッションが作成されます。問題はログアウトです。
私のコントローラーでは、セッションを破棄するためにこのコードを使用しています。
def destroy
session.delete(:user)
@current_user = nil
redirect_to root_path
end
私のログアウトルートはこのアクションを呼び出しています。ログアウトすると、セッションのユーザーが期待どおり nil に設定されていることがわかります。ホームページの URL を入力すると、ヘルパー メソッドはユーザーが既にログインしているかどうかを確認し、この時点で false を返し、期待どおりに「/auth/open_id?origin=request.url」にリダイレクトします。問題はここから始まります。資格情報を提供する前に、プロバイダーはコールバックを POST し、同じユーザーとの新しいセッションを作成します。私は何を間違っていますか?