个人访问令牌,用户令牌

时间:2016-04-12 23:36:07

标签: python api github oauth-2.0 github-api

我正在编写一个基本的python脚本,我正在尝试使用Github API。因为我是开发领域的新手,所以我不确定我可以与其他开发人员分享什么。我是否生成了一个新的个人访问令牌(我认为可以撤销)或者我给他们客户ID和客户端密钥?

有人可以解释OAuth(客户端ID和客户端密钥)与个人访问密钥的不同之处吗?

这种逻辑是否适用于所有API(不仅仅是在Github上)?

1 个答案:

答案 0 :(得分:0)

简短的答案

你应该给他们这些东西。它们相当于将您的用户名和密码移交给某人。

更长的答案

这取决于......

个人访问令牌

您的个人访问令牌是一个唯一的令牌,在API调用期间授权并代表您,就像通过Web界面进行日志记录授权您在那里执行操作一样。因此,当您使用个人访问令牌调用API函数时,您正在执行该API操作,就像您自己已登录并执行相同的操作一样。因此,如果您要向其他人提供您的令牌,他们将拥有与您向他们提供用户名和密码组合时相同的访问权限。

个人访问令牌已附加范围。范围控制特定令牌对GitHub的访问权限。例如,一个令牌我可以访问所有私有存储库,但另一个令牌只能访问公共存储库。

客户端ID

客户端ID代表您的应用程序,而不是您。因此,当您创建应用程序时,GitHub会为您提供一个ID,用于向GitHub标识您的应用程序。

首先,这允许有人使用OAuth登录您的应用程序,以便在GitHub网络界面上看到您的特定应用程序请求访问其帐户。

客户端秘密

客户端密钥是一个随机的,不可取的字符串,用于在您的应用程序和GitHub之间提供额外的身份验证层。如果您将客户端ID视为应用程序的用户名,则可以将客户端密码视为密码。

我应该分享吗?

您是否希望分享任何这些东西在很大程度上取决于您对其他开发人员的信任程度。如果您都在使用同一个应用程序,那么您可能都知道客户端ID和客户端密钥。但是如果你想开发一个人们将在他们自己的机器上安装的开源应用程序,他们应该为他们自己的应用程序实例生成自己的客户端ID和秘密。

您不太可能共享个人访问令牌,但如果您拥有整个团队使用的机器人帐户,那么共享令牌也可以。