10

私の PHP API では、フロントエンド バックボーン アプリからのすべてのリクエストでユーザー トークンを送信して、ユーザーが確実にアクセスできるようにする必要があります。

  1. アクティブです
  2. リソースにアクセスする権限がある

Backbone でこれを設定する最も簡単な方法は何ですか? 唯一の方法は Backbone.sync を上書きすることだと思いますが、コードはどのようになりますか? CoffeeScript が推奨されます。

編集

さらに2つのこと1.取得した場合に
ユーザーをリダイレクトしたい 2.アプリがブートストラップされるときに、localStorageからトークンを含むユーザーモデルをプルします 3.すべてのモデル/コレクションが由来するbaseModelとbaseCollectionがあります /login403: Access Forbidden Error

4

4 に答える 4

11

あなたはこれを行うことができます:

var _sync = Backbone.sync;
Backbone.sync = function(method, model, options) {

    if( model && (method === 'create' || method === 'update' || method === 'patch') ) {
        options.contentType = 'application/json';
        options.data = JSON.stringify(options.attrs || model.toJSON());
    }

    _.extend( options.data, {
        "access_token": "some-token"
    });

    return _sync.call( this, method, model, options );
}

そして、フェッチ/保存メソッドの失敗イベントをリッスンして、ユーザーをリダイレクトします/login

model.fetch().fail( /* redirect */ )
于 2013-01-07T22:24:44.163 に答える
-4
Backbone.$.ajaxSetup({
   headers: { 'sid': 'blabla' }
});
于 2015-06-04T22:18:11.030 に答える