erlang - 氮气 session

标签 erlang nitrogen

在我所有的氮页面中,我使用以下语义:

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

当用户登录并在包含表单的页面中时,如果 session 超时,他仍然可以执行表单发布,这会导致我的网站逻辑出现一些问题,因为未登录的用户应该重定向到登录页面,是否有任何问题我怎样才能实现这种行为,而不必遍历我所有的页面事件函数并寻找这种情况?

提前致谢并致以问候

最佳答案

Nitrogen 为应用程序开发人员提供了定义和设置授权回调模块的能力。

您可以定义一个授权处理程序,而不是在每个页面处理程序中描述 main/0 逻辑,如我在二月份编写的以下要点所示: https://gist.github.com/830529

您定义的 security_handler 回调模块中的 init/2 函数(假设您在启动时使用 nitrogen:handler/2 将其挂接) ) 将在页面处理程序中的 main/0 函数之前执行。

为了确保 POST 页面处理程序的任何部分都不会执行,您应该使用 401 作为参数调用 wf:status_code/1。然后根据您的网络服务器的配置指定在 401 响应上提供适当的登录页面。

关于erlang - 氮气 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297688/

相关文章:

erlang - 如何通过源头控制来处理施氮?

erlang - Nitrogen - 动态创建事件

c# - RabbitMQ 传输速率加快?

erlang - 如何获取Elixir中变量的存储位置?

database - 生产中的超大型 Mnesia 表

erlang - Mnesia - 将 ram_copy 表从另一个节点复制到 Disc_only_copy 表

haskell - Haskell QuickCheck 中基于状态机的测试

erlang - 如何在 Nitrogen 中使用 html 列表

erlang - 用氮气取消闪烁消息

erlang - ejabberd 新手如何设置功能齐全的 ejabberd 服务器?