在我的新项目中,我想使用 webmachine 和 mochiweb。我要做的第一件事是身份验证。
我编辑“dispatch.conf”并制作一些资源,例如:
{["auth"], my_res_auth, []}.
{["protected"], my_res_protected, []}.
{['*'], my_res_default, []}.
当某人访问“受保护”资源时,如果他未登录,我想将他重定向到“auth”资源。“auth”资源包含带有用户名和密码的 Web 表单,它可以完成所有身份验证工作。
我将这样的代码放在 my_res_protected.erl 中:
is_authorized(ReqData, State) ->
case my_auth:is_authorized(ReqData) of
true -> {true, ReqData, State};
false ->
% here should be something to redirect user to "auth" resource
% currently i put such thing, which is incorrect:
{true, wrq:do_redirect(true, wrq:set_resp_header("location", "/auth", ReqData)), State}
% dont know what should i put instead of "true"
end.
我用谷歌搜索了一些如何做的例子,但不喜欢我应该把这个函数放在所有资源中,这需要身份验证。
有什么办法吗?