1

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 し、同じユーザーとの新しいセッションを作成します。私は何を間違っていますか?

4

0 に答える 0