我想从角度做一个令牌请求,如下所示:
http --auth <email>:<password> --json GET http://127.0.0.1:5000/api/v1.0/token
以上是httpie,描述如下:
- auth,-a传递用户名:密码对作为参数。或者,如果您只指定用户名(-a username),则会在发送请求之前提示您输入密码。要发送空密码,请传递用户名:。还支持用户名:password @ hostname URL语法(但通过-a传递的凭据具有更高的优先级)。 --auth-type指定auth机制。可能的值是基本和摘要。默认值为basic,因此通常可以省略。
这是上述命令的输出:
root@localhost:/var/www/myapp# http --auth myname@email.com:thepassword --json GET http://127.0.0.1:5000/api/v1.0/token
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 159
Content-Type: application/json
Date: Wed, 25 Nov 2015 03:13:16 GMT
Server: nginx/1.4.6 (Ubuntu)
Set-Cookie:session=eyJfaWQiOnsiIGIiOiJOR000TkdGak1UQTFabUppTldNeE1HVTBZemt3TjJWaU1EVmpNemN4WkdZPSJ9fQ.CTa4zA.YoXlQf5H68q3lRzuAEmEQ5kRm_I; HttpOnly; Path=/
{
"expiration": 0,
"token": "eyJhbGciOiJIUzI1NiIsImV4cCI6MTQ0ODQyNDc5NiwiaWF0IjoxNDQ4NDIxMTk2fQ.eyJpZCI6MX0.NY5hSBVjeddctBVvlM1cDJw2A9Yv38om5cqyBQUQhgU"
}
下面是我对angularjs的代码:
$scope.login = function() {
var config = {
method: 'GET',
url: '/api/v1.0/token',
headers: {'auth':'myname@email.com:thepassword'}
};
$http(config)
.success(function(data, status, headers, config) {
if (data.status) {
//logged in
}
else {
//failed
}
})
.error(function(data, status, headers, config) {
//failed
});
}
我用代码的电子邮件和密码进行了硬编码,所以当我点击按钮时,应该使用电子邮件/密码从服务器获取具有正确输出的令牌,但是我得到了这样:
Failed to load resource: the server responded with a status of 401 (UNAUTHORIZED)
我不知道出了什么问题,如果我错过任何事情,请纠正我。
感谢。