对我的 Angular 应用进行身份验证,以便在 github 存储库上获得协作者
Authenticate my Angular app in order to get collaborators on a github repo
我正在使用以下函数来找回特定存储库上的协作者:
var getCol = function(username, reponame) {
var repo;
var repoUrl = "https://api.github.com/repos/" + username + "/" + reponame + "/collaborators";
return $http.get(repoUrl)
.then(function(response) {
return repo = response.data;
return $http.get(repoUrl + "/collaborators");
});
};
我需要进行身份验证才能访问此类数据。假设我通过在 https://github.com/settings/applications 注册一个新应用程序获得了我的客户端令牌。
我如何在 Angular 中进行身份验证,以便我可以充分使用 API?
当不使用基于令牌的 oauth 登录时,您应该使用登录 github 所需的数据设置 header。一旦设置了 header,AngularJS 将在每个请求中发送它们。没试过,但应该是这样的:
$http.defaults.headers.common["User"] = user;
$http.defaults.headers.common["Password"] = password;
回答您的评论:
Here you can get a token for your account
并像这样使用它:
$http.defaults.headers.common["Authorization"] = 'Basic' + yourApiToken;
这根本不安全,因为您将使用您的令牌进行身份验证,如果您让其他用户执行此请求,则不应这样做。阅读更多 here 以正确执行此操作,您需要让用户使用他们的通行证和用户名登录并发送此数据以为用户取回令牌 session。
我正在使用以下函数来找回特定存储库上的协作者:
var getCol = function(username, reponame) {
var repo;
var repoUrl = "https://api.github.com/repos/" + username + "/" + reponame + "/collaborators";
return $http.get(repoUrl)
.then(function(response) {
return repo = response.data;
return $http.get(repoUrl + "/collaborators");
});
};
我需要进行身份验证才能访问此类数据。假设我通过在 https://github.com/settings/applications 注册一个新应用程序获得了我的客户端令牌。
我如何在 Angular 中进行身份验证,以便我可以充分使用 API?
当不使用基于令牌的 oauth 登录时,您应该使用登录 github 所需的数据设置 header。一旦设置了 header,AngularJS 将在每个请求中发送它们。没试过,但应该是这样的:
$http.defaults.headers.common["User"] = user;
$http.defaults.headers.common["Password"] = password;
回答您的评论:
Here you can get a token for your account
并像这样使用它:
$http.defaults.headers.common["Authorization"] = 'Basic' + yourApiToken;
这根本不安全,因为您将使用您的令牌进行身份验证,如果您让其他用户执行此请求,则不应这样做。阅读更多 here 以正确执行此操作,您需要让用户使用他们的通行证和用户名登录并发送此数据以为用户取回令牌 session。