如何使用 angularjs 在 RESTful 请求中执行授权?

Posted

技术标签:

【中文标题】如何使用 angularjs 在 RESTful 请求中执行授权?【英文标题】:How to perform authorization in RESTful requests with angularjs? 【发布时间】:2013-09-07 02:48:43 【问题描述】:

我正在使用 angularjs 向需要授权的 API 发出 REST 请求。授权要求对请求进行签名(类似于 Amazon s3)并且此签名在标头中发送。

我不确定如何使用 angularjs 安全地执行此操作。由于这是客户端,因此需要将凭据嵌入到 js 代码中,这会暴露出巨大的安全漏洞。

我假设我在这里遗漏了一些明显的东西?任何想法将不胜感激。

【问题讨论】:

【参考方案1】:

不,你没有错过任何东西。我认为这里可能的解决方案是编写您自己的授权后端,该后端将保存您的凭据并将令牌返回给您的应用程序。

【讨论】:

这听起来接近于一个可行的解决方案,它使凭据远离可见的应用程序。尽管如何阻止伪造请求以签署后端? IP 限制? 要正确回答您的问题,您应该添加更多关于您的服务使用何种授权的数据。您应该采取的安全措施取决于您的服务中使用的请求签名类型。您以 Amazon S3 为例,不应从易受攻击的代码访问它。前端代码易受攻击。如果对您的服务的任何请求都需要使用“主”凭据进行签名,您应该代理所有这些。

以上是关于如何使用 angularjs 在 RESTful 请求中执行授权?的主要内容,如果未能解决你的问题,请参考以下文章

我如何在 angularjs 中使用 Restful。我使用了 ngResource 但它不起作用。如果我使用 ngResource,js 文件 nt 正在执行

AngularJs调用Restful实现CRUD - AngularJs

Angularjs调用restful api(post)没有成功错误请求

Spring Security 401 - 使用 / Angularjs 调用 restful 服务

使用 python flask-restful 和消费 AngularJS(使用 $http)时出现 CORS(跨源...)错误

AngularJS + Jersey RESTful 后端:身份验证和授权