Ruby gem需要跟踪用户的github凭据

时间:2012-09-24 06:36:23

标签: ruby rubygems gem github-api

我正在写一个ruby gem,它有一个命令行界面(使用Thor) 我称之为“myrubygem”。

用户应该能够执行以下操作:

myrubygem init

这应该要求github登录和密码,并使用github api在github上创建一个存储库(除了我希望gem可以做的其他一些事情)。

myrubygem push 

这应该提交并将一些文件推送到repo。这可能是重复操作,我不想一直询问用户他的github登录名和密码。此外,将密码存储在文本文件中也不是一个好主意。

有没有办法缓存凭据,以便只有第一个命令需要提示,其余命令可以记住凭据?

2 个答案:

答案 0 :(得分:0)

github不能使用Cookie吗?然后你应该根据需要存储和呈现cookie内容。维基百科条目可能对此有所帮助:http://en.wikipedia.org/wiki/HTTP_cookie

答案 1 :(得分:0)

我已经尝试了几个方法来解决这个问题,我会回答我自己的问题并解释我最终做了什么。

1)保存Oauth令牌

这是我尝试过的第一件事。我向用户询问了Github登录名和密码,使用github_api gem使用Api进行身份验证。然后我创建了一个具有足够权限的OAuth令牌。我存储了这个OAuth令牌,并使用相同的方式登录。

这很麻烦,有安全问题,看起来很麻烦。

所以我最终这样做了:

2)将责任移交给系统git命令

我使用ruby的系统命令来使用“git”命令来执行所有git操作。 Git会询问用户登录的详细信息,它知道如何缓存登录。减少头痛和减少代码。