在我的新項目中,我想使用webmachine和mochiweb。我想要做的第一件事是認證。webmachine和重定向未經身份驗證的用戶
我編輯「dispatch.conf」,並提出一些資源,如:
{["auth"], my_res_auth, []}.
{["protected"], my_res_protected, []}.
{['*'], my_res_default, []}.
當有人訪問「受保護」的資源,我想他重定向到「權威性」資源,如果他沒有登錄「 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.
我GOOGLE的如何做到這一點一些example,但不喜歡,我應該把這個函數中的所有資源,這需要身份驗證。
有沒有辦法做到這一點?
爲什麼不爲你的狀態變量使用記錄/結構?那麼它是: 'case State#state.do_redirect' – seancribbs
我認爲這並不是什麼大事來改變它的記錄,我發現proplist的方式符合我的需要。雖然我在其他webmachine的資源中使用記錄。 – danechkin