python google auth totp_如何在Python中TOTP生成密码的HTTP基本身份验证post请求?

任务是向url发送一个json字符串数据的HTTP post请求,url受HTTP基本身份验证的保护,我需要在头中提供一个授权:字段,emailAdd是基本身份验证的用户ID,生成密码通过TOTP,其中位数为10位,时间步长为30s,T0为0,散列函数使用sha512,共享秘密为emailAdd+“ABCD”。在

我的代码是:import requests, base64, json

from passlib.totp import TOTP

from requests.auth import HTTPBasicAuth

totp = TOTP(key = base64.b32encode(shared_secret.encode()), digits = 10, alg = "sha512")

password = totp.generate().token

r = requests.Session()

#auth = base64.b64encode((''.join(userid) + ':' + ''.join(password)).encode())

r.headers.update({"Content-Type": "application/json"}) #this is task required

#r.headers.update({"Authorization": "Basic " + auth.decode()})

res = r.post(url, json = data, auth = (userid, password))

print(res.status_code)

print(res.content)

但是我认证失败了,我觉得密码应该是正确的,而且post请求有问题,谁能告诉我是什么问题吗?另外,我和服务器在不同的时区,这对TOTP生成的密码有什么不同吗?如果有关系的话,我在windows上运行python。在

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值