バックボーンのURLクエリ文字列にトークンを追加するのに問題があります。皆さんがここで私を助けてくれることを願っています。知っておくべき3つのこと
- リクエストごとにトークンを期待するRESTAPIがあります
- 認証を行うnginxバックエンドは、バックボーンアプリと/apiの下のAPIへのプロキシリクエストを提供します
- 私はjavascript+バックボーンの初心者です:/
バックボーンアプリは実際にCookieからトークンを読み取ります。バックボーンが呼び出しを行うたびに、これをリクエストURLに追加する必要があります。これは、バックボーン同期をオーバーライドすることで実行できるようです。しかし、それはいくつかの異なることで私を悩ませます。のように、これは私がすることです
console.log('overriding backbone sync');
var key ="token";
Backbone.old_sync = Backbone.sync
Backbone.sync = function(method, model, options) {
if (method === 'read') {
if (!(model.url.indexOf('?key=') != -1)) {
model.url = model.url + '?key=' + key;
}
} else {
old_url = model.url();
if (!(old_url.indexOf('?key=') != -1)) {
model.url = function() {
return old_url + '?key=' + key;
}
}
}
Backbone.old_sync(method, model, options);
};
model.urlは、「読み取り」メソッドではなく、それを適切に処理する方法がわからないときに関数を返していました。他の問題は、連続したリクエストが行われたときに、トークンが2回追加されることです。私は運が悪かったそのindexOfのものでそれを削除しようとしました。
これを行うためのより良い方法はありますか?