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

AWS Cognito配置cookieStorage跨域登录问题及缓存实例注册咨询

解决AWS Cognito切换到cookieStorage后无法读取登录用户的问题

我之前也碰到过一模一样的问题,当把Amplify Auth的存储从localStorage改成cookieStorage时,确实得手动配置并关联缓存实例,不然Amplify没法正确识别和使用cookie来存储/读取凭证。结合你给出的控制台日志,No Cache module registered和Failed to get the signed in user这两个提示就是核心问题——Auth模块找不到对应的缓存来读取已登录用户的信息。

具体操作步骤

  1. 配置Cookie类型的缓存实例
    首先要用Amplify的Cache模块创建一个基于cookie的缓存配置,让Auth明确知道要从cookie里读取数据:

    import { Amplify, Auth, Cache } from 'aws-amplify';
    
    // 定义Cookie缓存的配置
    const cookieCache = {
      keyPrefix: 'amplify_', // 和Amplify默认前缀保持一致,避免读取不到旧数据
      storage: window.cookieStorage,
      // Cookie属性配置,根据你的环境调整
      cookieAttributes: {
        domain: 'localhost', // 本地调试用localhost,生产环境改为.foo.com(注意前面的点,让所有子域共享)
        path: '/',
        expires: 365, // 凭证过期天数
        secure: false, // localhost下必须设为false,HTTPS环境改为true
        sameSite: 'Lax' // 跨域场景建议用Lax,严格场景用Strict
      }
    };
    
    // 注册这个缓存实例
    Cache.configure(cookieCache);
    
  2. 在Auth配置中关联缓存
    接下来在Amplify的Auth配置里,明确指定使用刚才配置的缓存,同时确保cookieStorage的参数和缓存配置完全对齐:

    Amplify.configure({
      Auth: {
        region: '你的AWS区域',
        userPoolId: '你的用户池ID',
        userPoolWebClientId: '你的应用客户端ID',
        // Cookie存储配置,和上面的缓存属性保持一致
        cookieStorage: {
          domain: 'localhost',
          path: '/',
          expires: 365,
          secure: false,
          sameSite: 'Lax'
        },
        // 关键:把缓存实例关联到Auth模块
        cache: Cache
      }
    });
    

为什么这样能解决问题?

你的控制台日志里Credentials - No Cache module registered说明Amplify默认的缓存模块还是指向localStorage,没有切换到cookieStorage。手动配置并关联缓存后,Auth模块会通过这个缓存实例来读写cookie中的凭证,自然就能读取到已登录用户的信息,解决Failed to get the signed in user的错误。

本地调试注意事项

  • 如果用不同端口模拟子域(比如localhost:3000和localhost:3001),确保domain设为localhost,path为/,这样不同端口的页面才能共享cookie。
  • 本地调试时secure必须设为false,因为localhost默认是HTTP协议,HTTPS环境再改为true。

配置完成后,重新登录用户,凭证就会被存储到cookie中,跨子域访问时就能保持登录状态了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:16:26