Je travaille sur une application de commerce électronique. Lorsqu'un utilisateur se connecte à mon application, je veux faire une vérification auprès de mon gestionnaire d'abonnement externe et m'assurer que son abonnement est toujours actif et n'a pas expiré/échoué/quelque chose.
J'ai réussi à comprendre comment utiliser un callback Warden dans mon fichier initializers/devise.rb
pour effectuer une vérification du modèle après la connexion. Cependant, s'il y a un problème, je veux les déconnecter à nouveau et les rediriger vers une certaine page qui leur indique la marche à suivre.
Voici ce que j'ai. Je sais que je ne peux pas utiliser redirect_to
du rappel. Dans ces conditions, quelle est la meilleure façon de faire ce que j'essaie de faire ?
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