首页 > 解决方案 > 如何在 python 脚本中使用 request.post 对 bitbucket api 进行身份验证而无需密码?

问题描述

如何在 python 脚本中使用 request.post 对 bitbucket api 进行身份验证而无需密码?

我目前正在使用下面的这种方法,('username', 'mypwd')但我想要另一种方法,

r = requests.post(url, auth=('username', 'mypwd'), headers=headers, data=json.dumps(my_data), timeout=30)

标签: pythonapibitbucket

解决方案


正如您在 Bitbucket REST API 的文档中所读到的,它接受基本身份验证,即您正在使用的身份验证、OAuth 和会话身份验证。所有这些都可以由请求模块处理。

只要我理解您的问题,您不希望您的密码出现在代码中,因此基本身份验证和会话身份验证会在第一时间被丢弃(我们将在下面看到替代方案)。OAuth 似乎是唯一的方法,但您需要在每篇文章中发送或使用应用程序密钥和令牌秘密等信息进行身份验证。

另一个好方法是将密码存储在另一个文件中,通过使用os模块和函数 os.environ['VariableName'] 您可以将其提取到代码上的局部变量中并将其传递给 requests 函数。

最后但并非最不重要的一点是,您可以使用该getpass模块来调用函数getpassgetuser它会提示您输入密码和用户名,并将它们保存到变量中。

注意:通过创建session请求模块的对象,您只需“登录”一次,之后就没有其他 post/get 需要身份验证。


推荐阅读