В моем новом проекте я хочу использовать webmachine и mochiweb. Первое, что я хочу сделать - это аутентификация.
Я редактирую "dispatch.conf" и создаю некоторые ресурсы, например:
{["auth"], my_res_auth, []}.
{["protected"], my_res_protected, []}.
{['*'], my_res_default, []}.
Когда кто-то обращается к «защищенному» ресурсу, я хочу перенаправить его на ресурс «auth», если он не вошел в систему. Ресурс «auth» содержит веб-форму с именем пользователя и паролем, он выполняет всю работу по аутентификации.
Я поместил такой код в 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.
Я прогуглил какой-то пример того, как это сделать, но мне не нужно, чтобы мне пришлось помещать эту функцию во все ресурсы, что требует аутентификации.
Есть ли способ сделать это?