2011-03-14 1 views
2

Dans toutes mes pages d'azote i utiliser les éléments suivants sémantique:session d'azote

main() -> 
case wf:user() /= undefined of 
    true -> main_authorized(); 
    false -> wf:redirect_to_login("/login") 
end. 

Lorsque l'utilisateur est connecté et dans une page contenant un formulaire si le délai d'attente de session, il peut encore faire la forme post, conduisant à quelques problèmes sur la logique de mon site Web, car un utilisateur non identifié devrait être redirigé vers la page de connexion, est-il possible que je puisse réaliser ce comportement sans avoir à passer par toutes mes fonctions d'événement de pages et chercher ce cas?

Merci à l'avance et ce qui a trait

Répondre

4

azote fournit le développeur d'applications avec la possibilité de définir et définir un module de rappel d'autorisation.

Au lieu d'avoir la logique main/0 que vous décrivez dans chacun de vos gestionnaires de page que vous pouvez définir un gestionnaire d'autorisation comme dans le Gist suivant j'ai écrit en Février: https://gist.github.com/830529

La fonction init/2 dans le module de rappel security_handler vous définissez (en supposant que vous le connectez au démarrage avec nitrogen:handler/2) sera exécuté avant la fonction main/0 dans votre gestionnaire de page.

Pour être sûr qu'aucune partie du gestionnaire de page POST n'est exécutée, vous devez appeler wf:status_code/1 avec 401 comme argument. Puis spécifiez la page de connexion appropriée est servi sur 401 réponses selon la configuration de votre serveur Web.