我正在使用与RESTful api接口的python构建命令行工具.该API使用oauth2进行身份验证.而不是在用户每次运行python工具时都要求access_token.我可以通过某种方式存储access_token以便在其使用寿命内使用它吗?如果是这样,那么它有多安全.
解决方法:
您可以将访问令牌存储在用户桌面上的文件中.
您可以使用存储来实现.假设您使用oauth2client:
# Reading credentials
store = oauth2client.file.Storage(cred_path)
credentials = store.get()
# Writing credentials
creds = client.AccessTokenCredentials(access_token, user_agent)
creds.access_token = access_token
creds.refresh_token = refresh_token
creds.client_id = client_id
creds.client_secret = client_secret
# For some reason it does not save all the credentials,
# so write them to a json file manually instead
with open(credential_path, "w") as f:
f.write(creds.to_json)
在安全性方面,我不会在这里看到太多威胁,因为这些访问令牌将位于用户的桌面上.如果某人想要获取其访问令牌,则他们需要在该时间段内对该文件具有读取访问权限.但是,如果他们已经能够做到这一点,那么他们很可能也可以使用您的脚本在每次通过身份验证时向他们发送用户访问令牌的副本.但是请轻言,因为我不是该领域的专家.参见information security stack exchange.
信息安全堆栈交换中的post确实谈到了这一点:
these tokens give access to some fairly privileged information about your users.
但是,该问题已转至数据库.
总之,您可以将其保存在文件中. (但请相信我)