【发布时间】:2014-07-03 16:05:16
【问题描述】:
我的后端结构类似于this 文章。
所以我想使用 angular.js 发送 GET 请求,类似于 curl 的做法,通过 http 标头进行授权:
$ curl -u miguel:python -i -X GET http://127.0.0.1:5000/api/token
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 139
Server: Werkzeug/0.9.4 Python/2.7.3
Date: Thu, 28 Nov 2013 20:04:15 GMT
{
"token": "eyJhbGciOiJIUzI1NiIsImV4cCI6MTM4NTY2OTY1NSwiaWF0IjoxMzg1NjY5MDU1fQ.eyJpZCI6MX0.XbOEFJkhjHJ5uRINh2JA1BPzXjSohKYDRT472wGOvjc"
}
更新:
This 不是重复的,答案没有描述如何在 http 标头中一起发送用户名和密码,最后一条评论指出解决方案根本不起作用。请注意,即使是我的问题,或者随机用户无法理解该问题如何通过 http 标头发送用户名:密码.. 还没有人告诉过关于 base64 的任何事情.. ?:)
更新 2
完整和正常的答案是:
$http.get(config.apiUrl + '/api/token', { headers: {'Authorization': 'Basic '+ base64.encode( $scope.username + ':' + $scope.password) } })
更新 3
这并不像我想的那么容易,在 .get() 中传递这个字典不会解决任何问题。我发现这个答案很有帮助:How do I get basic auth working in angularjs?
【问题讨论】:
-
用户名和密码在哪里?您有一个 JWT,但您会在 登录后获得此信息。您只是在问如何向 Angular HTTP 请求添加标头吗?
-
@holms,请概述您遇到的问题。不要指望 SO 用户通读您链接到的文章以(也许)了解您的问题。你到底想达到什么目标,你面临的障碍是什么,到目前为止你做了什么?
-
我认为这正是他所需要的,问题也有Basic Auth。
-
顺便说一句,它不是重复的,在那个问题中,没有告诉如何将 USERNAME 和 PASSWORD 一起发送,只有令牌.. 或者里面有什么废话。最后一条评论指出解决方案根本不起作用
-
@holms 基本身份验证是使用标头
Authorization: Basic Base64('user:password')en.wikipedia.org/wiki/Basic_access_authentication 创建的
标签: javascript angularjs http-authentication