1

「ifauthenticated()」チェックでコードベースを散らかすことなく、ページ上の一連のJavascriptアクションで認証を処理するための最良のアプローチは何ですか?

例:10個のいいねボタン、いくつかのコメントボタン、および認証を必要とする他のいくつかのアクションがあります。ユーザーが認証されていない場合は、ログイン/サインアップページにリダイレクトします。ただし、if(user.isAuthenticated()){xxx}呼び出しでコードを散らかすことは避けたいと思います。私たちの特定のケースでは、これらを主にバックボーンのイベントに使用したいと思いますが、一般的な質問にはそれは重要ではないと思います。

4

2 に答える 2

1

underscorejsの助けを借りて。あなたはこのようなものを書くことができます:

function authWrapper(func){
    if (user.isAuthenticated()) {
     func.apply(this, _.rest(arguments));
    }else{
       ...
    }
}

jQueryを使用していると仮定し、イベントをバインドするときに、次のように記述します。

$(...).bind('event', _.wrap(function(...){...}, authWrapper));

また

$(...).bind('event', _.wrap(thehandler, authWrapper));
于 2012-06-15T05:41:38.653 に答える
0

認証に問題がない場合に呼び出す必要のあるメソッドのコールバックを使用して、チェックを行うメソッドを作成するのはどうですか?何かのようなもの:

function checkNdRun(cb,params){
  params = [].slice.call(params);
  if (/*[authenticationCheckingLogic here]*/){
    cb.apply(null,params);
  } else {
    alert('please login first');
  }
}
//usage example
somebutton.onclick = 
     function(e){checkNdRun(functionToRun,e,/*[other parameters]*/);};
于 2012-06-15T05:44:58.243 に答える