From c58cb7f32e57e19cb623205f968842c79c13929a Mon Sep 17 00:00:00 2001 From: RBAmeto <46624927+RBAmeto@users.noreply.github.com> Date: Sat, 8 Jul 2023 02:45:53 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E8=A7=A3=E5=86=B3sruid=E9=83=A8?= =?UTF-8?q?=E5=88=861034=E9=97=AE=E9=A2=98=20(#20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 解决sruid部分出现验证码问题 解决sruid部分出现验证码问题 * 兼容真实验证码 --- gsuid_core/utils/api/mys/request.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gsuid_core/utils/api/mys/request.py b/gsuid_core/utils/api/mys/request.py index c87c5ed..81b0e28 100644 --- a/gsuid_core/utils/api/mys/request.py +++ b/gsuid_core/utils/api/mys/request.py @@ -261,7 +261,7 @@ class BaseMysApi: header['x-rpc-device_id'] = await self.get_user_device_id(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: # header['x-rpc-challenge']=self.chs.pop(header['Cookie']) if self.is_sr: @@ -315,8 +315,20 @@ class BaseMysApi: # 针对1034做特殊处理 if retcode == 1034: - ch = await self._upass(header) - self.chs[header['Cookie']] = ch + if uid and self.is_sr and _ == 0: + 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: sqla = self.dbsqla.get_sqla('TEMP') new_fp = await self.generate_fp_by_uid(uid)