Cover photo

Dotenv 机密文件 CLI 允许与空间和时间网络进行交互式通信。

处理本地机密时,最佳实践是将机密保存在环境变量文件中,而不是将这些机密硬编码到脚本中。常见的约定是使用“dotenv”文件,因为它受许多编程语言支持并且经常出现在文件模板中。dotenv 文件的默认值是(这是整个文件名,而不是扩展名),但大多数 dotenv 库都支持任何名称。.gitignore.env

👍

在 dotenv 文件中保密的做法是可选的,但强烈鼓励这样做。这允许您在没有秘密的情况下共享脚本,使这些脚本更加可移植和更安全。

文档中环境变量的假设

在使用Space and Time 文档时,您会发现许多示例,其中大多数使用sxtcli和文件的组合来包含机密。为了保持一致性,这些文档将假设以下环境变量可用:.env

post image

Dotenv 示例

Dotenv 文件通常是结构化的,以便可以通过 shell 命令执行它们,从而将它们作为环境变量加载。示例文件可能如下所示:.env

Shell

API_URL="https://api.example.com"

USERID="Jane_Doe" USER_PUBLIC_KEY="mNczmcOoMqHQzaW0/lXuCRa5wYYPcQms92q0G+VzKtY=" USER_PRIVATE_KEY="7zoZMnvJv+spt5lUjF0Isuyxi9jlwJCCWCglJmSVghc=" USER_PASSWORD="Aok3pnEPK"

🚧

等号之前或之后没有空格。某些操作系统中的 Shell 命令可以将空格注册为有效字符并将其包含在变量中。

要进行测试,请尝试通过首先加载 .env 文件来验证空间和时间(使用有效凭据),然后使用:sxtcli authenticate

Shell

Shell

echo "Load .env file"
. ./.env

echo "Login to SxT"
sxtcli authenticate login --url=$API_URL --userId=$USERID --publicKey=$USER_PUBLIC_KEY --privateKey=$USER_PRIVATE_KEY

echo "Save Access Token for later use"
ACCESS_TOKEN="eyJ0eXBlIjoiYWNjZXNzIiwia2lkIjoiZTUxNDVkYmQtZGNmYi00ZjI..."

或者,更简洁地说:

Shell

echo "Load .env file and get ACCESS_TOKEN"

. ./.env

ACCESS_TOKEN=$( sxtcli authenticate login --url=$API_URL --userId=$USERID --publicKey=$USER_PUBLIC_KEY --privateKey=$USER_PRIVATE_KEY | awk 'NR==2{ print $2 }' )

您可能遇到的其他环境变量

在遍历文档时,您可能还会遇到示例中使用的其他环境变量:

post image