我刚开始在项目中使用ngResource来使用我的RESTful端点。这是使用$ resource实现用户密码重置的方法吗?看起来很奇怪,将电子邮件地址作为URL参数传递。
.factory('User', ['$resource', function ($resource) {
var paramDefaults = {id: '@id'}
var actions = {
passwordReset: {
method: 'GET',
params: {email: '@email'},
url: '/api/user/reset/:email'
}
}
return $resource('/api/user/:id', paramDefaults, actions);
}])
答案 0 :(得分:1)
答案 1 :(得分:1)
只要你确保通过HTTPS调用服务(即加密连接),就没有什么可以反对imho(当然,REST纯粹主义者可能会在这里争论)。
就安全性而言,GET请求(将数据作为请求参数传递)和POST请求(在请求正文中传递数据)的行为是相同的:如果未加密,攻击者可以窃听数据排队数据。除此之外,接受GET请求可能 - 取决于服务器端REST框架 - 比POST请求稍重一些。
由于密码本身不作为请求的一部分传递,因此可能认为不需要加密。但是,仍然强烈建议对请求进行加密,因为单独重置密码的人可能会允许攻击,并且通常会在响应中返回允许重置密码的令牌。