验证我的Angular应用程序,以便在github repo上获得协作者

时间:2015-09-28 18:28:28

标签: javascript angularjs github-api

我正在使用以下函数来取回特定存储库上的协作者:

   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​​?

1 个答案:

答案 0 :(得分:3)

当不使用基于令牌的oauth登录时,您应该设置一个标头,其中包含登录github所需的数据。设置标头后,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来做正确的操作,您需要让用户使用他们的通行证和用户名登录并发送此数据以获取用户会话的令牌。