我正在写一个ruby gem,它有一个命令行界面(使用Thor) 我称之为“myrubygem”。
用户应该能够执行以下操作:
myrubygem init
这应该要求github登录和密码,并使用github api在github上创建一个存储库(除了我希望gem可以做的其他一些事情)。
myrubygem push
这应该提交并将一些文件推送到repo。这可能是重复操作,我不想一直询问用户他的github登录名和密码。此外,将密码存储在文本文件中也不是一个好主意。
有没有办法缓存凭据,以便只有第一个命令需要提示,其余命令可以记住凭据?
答案 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会询问用户登录的详细信息,它知道如何缓存登录。减少头痛和减少代码。