当前位置: 首页 > 面试题库 >

AngularJS:如何使用令牌安全性和自定义方法处理RESTful API?

司马彬
2023-03-14
问题内容

所以说,我有一个 基于REST的API
是有标准的GETPOSTPUT,和DELETE它的方法,但我也有它是习惯特定对象类型的其他方法,并就我需要一个安全令牌顶部。

因此此服务的网址可能如下所示:

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

GET
http://sample.com/api/User/GetUsersByStatus?token=ABCDEF1234¶m1=blah¶m2=foo

要么

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

最后两个执行一些自定义功能。我不知道这可能是重置密码的过程,或者是克隆用户并返回记录的过程。只是自定义的“东西”。

用Angular处理此问题的最佳实践方法是什么?我已经看过$ resource实用程序,但它似乎仅适用于标准 REST
方法,而且我不确定如何以下一个Angular开发人员可以理解的方式扩展它。


问题答案:

如果我对您的理解正确,我相信您在问的是如何使资源方法自动包含您的令牌?如果这是正确的,那么您可以通过两种方法来做到这一点。首先,您可以扩展预定义的资源方法并烘焙将在每次调用中应用的参数,也可以定义自己的方法。

另外,当您调用方法时,如果尚未对参数进行预限定,则它们将最终出现在查询字符串中。

以下是我为cakephp实现编写的示例代码。我正在传递每个预定义方法和我自己的initialize方法的操作。

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' } } 
        });
  })

希望这可以帮助

- 担



 类似资料:
  • 问题内容: 我正在使用AngularJS构建SPA,并与服务(JAVA)通信。 当用户发送其用户名/密码时,服务会同时发送回:Acces令牌和Refresh令牌。我正在尝试处理:如果收到状态为401的响应,请发送回刷新令牌,然后再次发送您的上一个请求。我试图通过包含$ http来做到这一点,但是angular不允许我在此拦截器中包含它。有什么方法可以使用我正在接收的响应参数来重新创建原始请求吗?

  • 我对Lucene是新来的。我试图有自定义属性的令牌。我能够获得分配给令牌的属性。然而,我意识到我们需要为我的每个属性大致有3个文件(接口类扩展属性,类扩展属性Impl和一个类扩展标记过滤器)? 我可能有大约50个属性需要分配。每个属性必须有3个文件吗?这大约是150个文件。

  • 问题内容: 我有一个指令,这是代码: 我想呼吁用户采取行动。操作按钮不在指令上。 从控制器呼叫的最佳方法是什么? 问题答案: 如果要使用隔离作用域,则可以使用来自控制器作用域的变量的双向绑定来传递控制对象。您还可以在页面上使用相同的控件对象来控制同一指令的多个实例。

  • 本文向大家介绍AngularJS使用自定义指令替代ng-repeat的方法,包括了AngularJS使用自定义指令替代ng-repeat的方法的使用技巧和注意事项,需要的朋友参考一下 前言 大家都知道对于处理小数量,ng-repeat是非常有用的,但是如果需要处理非常大的数量集,还是采用自定义的方法更好一些。特别是数据大多都是静态的或已预存储好的,这个时候应避免使用ng-repeat指令。 ng-

  • 我正在为Spring Security实现一个自定义的AngularJS登录页面,但在身份验证方面存在问题。 遵循本教程/示例,他们的示例在本地工作得很好。 值得注意的变化(也很可能是我的问题的根源): > 文件结构更改 使用严格的Angular(没有jQuery)--这将导致发出POST请求所需的不同函数 用bower代替wro4j 角代码样式/范围 许多相关的Spring Security问题

  • 基于这篇文章和这个问题,刷新令牌应该是长寿命的,访问令牌应该是短寿命的。我将存储我的刷新令牌超过或等于60天,我的访问令牌20分钟或更多/更少,但永远不会超过一个小时。 我在理解这些令牌的使用时的主要难点是两个令牌的存储方法。我明白,我应该将刷新令牌存储为,使其无法通过脚本访问(XSS攻击),并将访问令牌存储在本地,或,以便在API调用中作为密钥使用。这样做是正确的方法吗?我是否应该按照本文中的建