如何在命令行界面中存储会话

问题描述

我正在尝试基于模仿用户界面中可用功能的 cobra 包在 Go 中设计一个命令行界面。当用户一个命令中提供用于登录的初始凭据,然后他执行下一组命令时,我面临一个问题。 在这种情况下,我要么需要存储不安全的凭据,要么需要存储我创建的会话对象,但现在确定如何存储会话对象,因为程序不是一直在运行。

解决方法

你可以使用https://github.com/docker/docker-credential-helpers

就像这个例子

p := NewShellProgramFunc("docker-credential-secretservice")

c := &credentials.Credentials{
    ServerURL: "https://example.com",Username:  "calavera",Secret:    "my super secret token",}

if err := Store(p,c); err != nil {
    fmt.Println(err)
}