首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs的基本要求

AngularJs的基本要求
EN

Stack Overflow用户
提问于 2015-07-04 21:45:47
回答 1查看 982关注 0票数 1

是否可以在下面的代码段中使用basic auth向本地运行的站点发出简单的post请求?

代码语言:javascript
复制
app.controller('post', function($scope, $http) {


$http.post("http://localhost:8888/angular//wp-json/posts", {'title':'Posting from Angular'})
.success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available

document.getElementById("response").innerHTML = "It worked!";
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.

document.getElementById("response").innerHTML= "It did not work!";
alert(status)
});

}); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 16:18:06

当您说基本身份验证时,您是指HTTP基本身份验证吗?

如果这就是你的意思:那就不。HTTP基本身份验证要求您的客户端(在本例中是web浏览器)需要知道您的API密钥并能够通过网络将它们发送到您的服务器。由于您在web浏览器内部运行角,这意味着任何访问您的站点的用户理论上都可以通过检查浏览器的Javascript控制台以纯文本形式查看您的API凭据。

这是一个巨大的安全风险。

您想要做的是使用像OAuth2这样的带有密码授予的协议(这里有更多信息:https://stormpath.com/blog/token-auth-spa/)。

OAuth2允许您基本上执行以下操作:

  • 让用户使用用户名/密码登录到应用程序。
  • 登录成功后,将返回一个令牌,并将其存储在隐藏在JAVASCRIPT中的web浏览器cookie中。
  • 然后,您可以使用Then向您的API服务发布,因为浏览器将自动将相关的令牌API凭据自动附加到HTTP授权头中。
  • 然后,服务器可以从HTTP授权头中获取令牌,并以这种方式验证凭据。

这是从浏览器访问经过身份验证的API服务的唯一安全方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31225352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档