0

我可能在做一些愚蠢的事情,但是......

尝试使用以下代码检索令牌时:

auth = github3.authorize(user, password, scopes, note, two_factor_callback = two_factor_callback)

我发现 API 创建了一个令牌,然后我将其存储在本地,而且一切都是 hunky dory。

但是,如果我丢失了本地存储的令牌,或者移动到另一台没有本地存储令牌的机器上,我会从授权中返回失败。

似乎一旦为给定note值创建了令牌,就不能再次获得它,或者用新的值覆盖它。

对于机器的变化,我怀疑fingerprintgithub API中的参数需要实现。一个临时的解决方法是note用你所在的机器独有的东西来加盐,比如 MAC 地址,但这有点难看。

对于令牌存在,但它的本地副本已丢失(例如,用户从我存储它的钥匙串中删除它)的情况,唯一的解决方案似乎是登录到 github 网站并手动删除令牌!

这对我来说有点违反直觉!我在这里想念什么?

我可以看到,也许 github 的服务器没有存储整个令牌,因此无法再次返回它 - 但在这种情况下,我希望能够以一种干净的方式重新生成它。也许有一个,我错过了?

4

1 回答 1

0

对于令牌存在,但它的本地副本已经丢失(例如,用户从我存储它的钥匙串中删除它)的情况,唯一的解决方案似乎是登录到 github 网站并手动删除令牌!

您应该能够使用用户的用户名和密码访问授权列表。如果你能找到现有的,你应该可以删除它。

我可以看到也许github的服务器没有存储整个令牌,所以不能再次返回它

我怀疑他们确实存储了它。他们只是拒绝退货。

但在那种情况下,我希望有一种干净的方式能够重新生成它。也许有一个,我错过了?

据我所知,没有办法重新生成授权令牌。GitHub 不会公开生成算法,并且在第一次生成令牌后无法检索它。

于 2017-01-25T12:13:19.643 回答