AngularJS:如何处理与令牌的安全性和自定义方法RESTful API中?(AngularJS

2019-06-26 16:42发布

所以说我有了标准的一个RESTful API GETPOSTPUTDELETE它的方法,但我也有它是自定义的特定对象类型的其他方法,以及最重要的是我需要一个安全令牌。

所以此服务的URL可能看起来是这样:

GET / PUT / POST / DELETE http://sample.com/api/User/123?token=ABCDEF1234

GET http://sample.com/api/User/GetUsersByStatus?token=ABCDEF1234&param1=blah&param2=foo

要么

POST http://sample.com/api/User/DoSomethingCrazy?token=ABCDEF1234

其中最后两个做一些自定义的功能。 也许它的东西,重置密码,或者也许它的东西克隆一个用户和返回的记录,我不知道。 刚刚定制的“东西”。

什么是最好的实践方式与角度来处理呢? 我见过的$资源利用率,但它似乎仅是标准的REST方法,我不知道如何来扩展的方式下一角开发商就明白了。

Answer 1:

如果我正确理解你,我相信你问的是如何使资源的方法自动包含您的令牌??? 如果这是正确的,那么你可以做这几种方法。 首先,你可以扩展预定义的资源的方法和烤在将应用于每个呼叫params中,你可以定义自己的方法。

此外,当你调用一个方法,如果参数尚未通过资格预审的,他们最终会在查询字符串。

下面是我写的一个CakePHP的实施示例代码。 我传递行动为每个预定义的方法和我自己的初始化方法。


angular.module('myApp.cakephp.services', ['ngResource']).
  factory('CommentSvc', function ($resource) {
        return $resource('/cakephp/demo_comments/:action/:id/:page/:limit:format', { id:'@id', 'page' : '@page', 'limit': '@limit' }, {
          'initialize' : { method: 'GET', params: { action : 'initialize', format: '.json' }, isArray : true },
          'save': { method: 'POST', params: { action: 'create', format: '.json' } },
          'query' : { method: 'GET', params: { action : 'read', format: '.json' } , isArray : true },
          'update': { method: 'PUT', params: { action: 'update', format: '.json' } },
          'remove': { method: 'DELETE', params: { action: 'delete', format: '.json' } } 
        });
  })

希望这可以帮助

--and



文章来源: AngularJS: How do I handle RESTful APIs with token security and custom methods?