0

最近、残りの API リクエストごとにトークンを送信できるTokenHandlerを見つけました。ここで詳細な説明を見つけることができます: http://nils-blum-oeste.net/angularjs-send-auth-token-with-every--request/#.UXtYlbVTDIX

プロジェクトでこのハンドラーを実装する際に問題に直面しています。私のプロジェクトはいくつかのリソースを扱っています。 PostAuthorについて話しましょう。私が現在行っていることは次のとおりです。

angular.module('PostService', ['ngResource']).factory(....
angular.module('AuthorService', ['ngResource']).factory(....

そして、それをメインのアプリ モジュールにまとめます

var app = angular.module('myApp', ['PostService', 'AuthorService']);

私の質問は、TokenHandler をどこにセットアップすればよいかということです。モジュールに割り当てる必要がありますか?たとえば PostService に割り当てますが、結果として AuthorService では使用できませんか?

その結果、私は別の質問があります。次のような 1 つのサービスで複数のリソースをラップすることは可能ですか。

angular.module('RestService', ['ngResource']).factory(['Post', 'Author'],...
4

1 に答える 1

2

引用された記事のガイドラインに従って、TokenHandlerサービスを宣言します。

angular.module('TokenHandler').factory('TokenHandler', function() {...

次の方法で、トークンを割り当てる必要がある各サービスを構成します。

angular.module('AService', ['ngResource', 'TokenHandler']).factory('AService', ['$resource', 'TokenHandler', function($resource, tokenHandler) {
    var resource = $resource("http://...", {
        ...
    }, {
        get: {
            method:'GET', 
            params:{
                action:'get'
            }, 
            isArray:false
        },
        ...
    });

    resource = tokenHandler.wrapActions( resource, ["get", ...] );

    return resource;
}]);

トークンの送信が必要なアクションのみをラップします。2 番目の質問に関しては、それは良いプログラミング方法ではありません。とにかく、ファクトリは 1 つのオブジェクトを返すだけです。

于 2013-04-27T06:00:41.073 に答える