私は電子商取引アプリケーションに取り組んでいます。ユーザーがアプリにログインするときに、外部のサブスクリプション ハンドラーをチェックして、サブスクリプションがまだ有効であり、有効期限が切れていたり、失敗したりしていないことを確認したいと考えています。
initializers/devise.rb
ログイン後にモデルのチェックを実行するために、Warden コールバックを使用する方法を理解することに成功しました。ただし、問題が発生した場合は、もう一度ログアウトして、次に何をすべきかを示す特定のページにリダイレクトしたいと考えています。
これが私が持っているものです。コールバックから使用できないことはわかってredirect_to
います。それを考えると、私がやろうとしていることを行うための最良の方法は何ですか?
Warden::Manager.after_authentication do |user, auth, opts|
begin
user.check_active_subscription # this works, and will raise one of several exceptions if something is goofy
rescue
redirect_to "/account/expired" # obviously this won't work, but see what I'm trying to do?
end
end