2

すべての窒素ページで、次のセマンティックを使用します。

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

ユーザーがログインし、フォームを含むページでセッションがタイムアウトした場合でも、フォームの投稿を行うことができ、ログに記録されていないユーザーをログイン ページにリダイレクトする必要があるため、Web サイトのロジックに問題が発生する可能性があります。できる方法はありますかすべてのページのイベント機能を実行してこのケースを探すことなく、この動作を実現できますか?

よろしくお願いします

4

1 に答える 1

4

Nitrogen は、アプリケーション開発者に認証コールバック モジュールを定義および設定する機能を提供します。

各ページ ハンドラーで記述したロジックを使用する代わりにmain/0、2 月に書いた次の Gist のように承認ハンドラーを定義できます: https://gist.github.com/830529

定義したコールバック モジュール内のinit/2関数security_handler(起動時に でフックすると仮定) は、ページ ハンドラー内nitrogen:handler/2の関数の前に実行されます。main/0

POST ページ ハンドラーのどの部分も実行されないようにするにはwf:status_code/1、401 を引数として呼び出す必要があります。次に、Web サーバーの構成に従って、適切なログイン ページが 401 応答で提供されるように指定します。

于 2011-05-27T02:18:56.117 に答える