我目前正在使用Neo4j图形数据库,它可以免费提供REST网址。我试图将它连接到一个提供双簧管客户端流媒体的角度模块:https://github.com/RonB/angular-oboe
我正在尝试更好地了解如何在我的请求标头中添加用户名:密码凭据以转录此curl命令
> curl --user username:password http://localhost:7474/auth/list
https://github.com/neo4j-contrib/authentication-extension
在angular-oboe README的Usage部分中,它概述了请求的参数
$scope.myData = Oboe({
url: '/api/myData',
pattern: '{index}',
pagesize: 100
});
我有预感为Oboe repo上列出的withCredentials添加一行 https://github.com/jimhigson/oboe.js-website/blob/master/content/api.md
双簧管({ url:String, method:String,//可选 headers:Object,//可选 body:String | Object,//可选 cached:Boolean,//可选 withCredentials:布尔值//可选,仅限浏览器 })
但我不知道在哪里放置用户名:密码对。
您可以提供任何帮助,非常感谢您的合作。
答案 0 :(得分:1)
angular-oboe服务将所有参数传递给Oboe函数,因此您可以指定headers参数。要确保在请求上允许身份验证,请指定withCredentials:true。 基本身份验证可以通过以下方式实现:
.controller('StreamingCtrl', function($scope, Oboe) {
$scope.contacts = [];
// the contacts streamed
$scope.contacts = Oboe({
url: 'http://some.restfull.srv/contacts',
pattern: '{contactid}',
pagesize: 100,
withCredentials: true,
headers: {
// Base 64 encoded Basis authentication
Authorization: 'Basic ' + btoa('username:password')
}
});
})
btoa函数将Base 64编码用户名和密码。
编辑: 自第一个答案以来,angular-oboe工厂已被改变,并且返回了一个promise而不是json对象数组。
这是使用最新版本的方法:
angular.module('MyApp')
.controller(['$scope', 'Oboe', function($scope, Oboe) {
$scope.myData = [];
Oboe({
url: '/api/myData',
pattern: '{index}',
withCredentials: true,
headers: {
Authentication: 'Basic ' + btoa('yourusername:yourpassword')
}
}).then(function() {
// finished loading
}, function(error) {
// handle errors
}, function(node) {
// node received
$scope.myData.push(node);
});
}]);