You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Cognito高级安全功能未正确识别用户客户端设备问题咨询

问题:Amazon Cognito高级安全功能忽略前端传入设备数据,显示后端服务器设备信息

我已启用处于AUDIT模式的Amazon Cognito高级安全功能,未使用托管UI(hosted UI)。前端按照官方文档收集高级安全所需数据,包含正确的客户端设备与操作系统信息(例如Windows + Chrome)。

前端收集的解码后payload如下:

'{\"payload\":\"{\\\"contextData\\\":{\\\"UserAgent\\\":\\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36\\\",\\\"DeviceId\\\":\\\"XXXX:XXXX\\\",\\\"DeviceLanguage\\\":\\\"de-DE\\\",\\\"DeviceFingerprint\\\":\\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36PDF Viewer:Chrome PDF Viewer:Chromium PDF Viewer:Microsoft Edge PDF Viewer:WebKit built-in PDF:de-DE\\\",\\\"DevicePlatform\\\":\\\"Win32\\\",\\\"ClientTimezone\\\":\\\"02:00\\\"},\\\"username\\\":\\\"XXX\\\",\\\"userPoolId\\\":\\\"XXX\\\",\\\"timestamp\\\":\\\"1666690380680\\\"}\",\"signature\":\"XXXX\",\"version\":\"JS20171115\"}'

但在Cognito控制台中显示的设备却是后端服务器的设备(Linux系统),这显然不符合预期。

后端登录调用代码如下:

$this->client->initiateAuth([
            'AuthFlow' => 'USER_PASSWORD_AUTH',
            'AuthParameters' => [
                'USERNAME' => $username,
                'PASSWORD' => $password,
                'SECRET_HASH' => $secret,

            ],
            'ClientMetadata' => [
                ...
            ],
            'ClientId' => $this->clientId,
            'UserContextData' => [
                'EncodedData' => $encodedData,
                'IpAddress' => $ip,
            ],
        ]);

同时,在调用forgotPassword、confirmForgotPassword和signUp接口时传入相同数据,也出现同样的设备显示错误。

为何Cognito会忽略我传入的编码数据,反而使用请求的服务器信息?这会导致高级安全功能完全失效,恳请解答。


内容的提问来源于stack exchange,提问作者Havrin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:50:32