🎨 解决sruid部分1034问题 (#20)

* 解决sruid部分出现验证码问题

解决sruid部分出现验证码问题

* 兼容真实验证码
This commit is contained in:
RBAmeto 2023-07-08 02:45:53 +08:00 committed by GitHub
parent 19e4133723
commit c58cb7f32e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -261,7 +261,7 @@ class BaseMysApi:
header['x-rpc-device_id'] = await self.get_user_device_id(uid) header['x-rpc-device_id'] = await self.get_user_device_id(uid)
header['x-rpc-device_fp'] = await self.get_user_fp(uid) header['x-rpc-device_fp'] = await self.get_user_fp(uid)
for _ in range(2): for _ in range(3):
if 'Cookie' in header and header['Cookie'] in self.chs: if 'Cookie' in header and header['Cookie'] in self.chs:
# header['x-rpc-challenge']=self.chs.pop(header['Cookie']) # header['x-rpc-challenge']=self.chs.pop(header['Cookie'])
if self.is_sr: if self.is_sr:
@ -315,8 +315,20 @@ class BaseMysApi:
# 针对1034做特殊处理 # 针对1034做特殊处理
if retcode == 1034: if retcode == 1034:
ch = await self._upass(header) if uid and self.is_sr and _ == 0:
self.chs[header['Cookie']] = ch sqla = self.dbsqla.get_sqla('TEMP')
new_fp = await self.generate_fp_by_uid(uid)
await sqla.update_user_data(uid, {'fp': new_fp})
header['x-rpc-device_fp'] = new_fp
if isinstance(params, Dict):
header['DS'] = get_ds_token(
'&'.join(
[f'{k}={v}' for k, v in params.items()]
)
)
else:
ch = await self._upass(header)
self.chs[header['Cookie']] = ch
elif retcode == -10001 and uid: elif retcode == -10001 and uid:
sqla = self.dbsqla.get_sqla('TEMP') sqla = self.dbsqla.get_sqla('TEMP')
new_fp = await self.generate_fp_by_uid(uid) new_fp = await self.generate_fp_by_uid(uid)