首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Click处理Python中CLI的用户身份验证

如何使用Click处理Python中CLI的用户身份验证
EN

Stack Overflow用户
提问于 2015-04-14 10:28:23
回答 1查看 4.2K关注 0票数 1

我正在使用非常好的Click框架来构建一个Python,它充当了一组复杂REST API的“包装器”。我使用“复杂”例子是为了有好的样板代码来构建CLI的其余部分。

但是,由于CLI本身与REST通信,我需要对每个命令进行一些配置。示例:用户身份验证(id、密码等),如果与默认身份验证不同,则使用URL到API服务器。

我可以强迫用户将这些配置作为每个命令的参数,但在执行许多命令时,这会非常烦人(用户必须为每个命令插入自己的详细信息)。

是否有一种方法让用户在第一个命令中输入他的凭据,以便使他的uid/pwd在整个会话(例如mysql-cli )中持久化,并在执行他需要的命令之后,从CLI“注销”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 19:32:53

通常这样做的方法是使用configure命令将这些凭据存储在文件中(通常在用户的$HOME文件夹中,如果您在Linux上),并更改其权限,因此只能由用户读取。

您可以使用configparser (或JSON或YAML或任何您想要的)根据配置文件加载不同的凭据集:

代码语言:javascript
复制
# $HOME/.your-config-name
[default]
auth-mode=password
username=bsmith
password=abc123

[system1]
auth-mode=oauth
auth-token=abc-123
auth-url=http://system.1/authenticate

[system2]
auth-mode=anonymous
auth-url=http://this-is.system2/start

然后,您可以使用全局参数(例如--profile)来选择对于给定请求应该使用哪些凭据:

代码语言:javascript
复制
$ your-cli --profile system1 command --for first-system
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29625003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档