AWS Cognito cookie 存储

Noe*_*sen 7 cookies amplifyjs aws-amplify

我正在尝试将 Cognito 设置为使用 cookie 而不是 localStorage 作为凭据,以便我可以让用户在域之间登录,例如,egxfoo.com 和 y.foo.com。第一步是让它在本地主机上工作,但我被卡住了。

文件显示了一个简单的配置变化应该做的伎俩?

以下调试消息被提交到控制台:

[DEBUG] 37:08.223 AuthClass 
Object { idToken: {…}, refreshToken: {…}, accessToken: {…}, clockDrift: 0 }
ConsoleLogger.js:87

[DEBUG] 37:08.228 Credentials - No Cache module registered in Amplify ConsoleLogger.js:84

[DEBUG] 37:08.230 Credentials - set credentials from session ConsoleLogger.js:84

[DEBUG] 37:08.230 Credentials - No Cognito Federated Identity pool provided ConsoleLogger.js:84

[DEBUG] 37:08.230 AuthClass - cannot get cognito credentials No Cognito Federated Identity pool provided ConsoleLogger.js:94

[DEBUG] 37:08.231 AuthClass - Failed to get user from user pool ConsoleLogger.js:84

[ERROR] 37:08.232 AuthClass - Failed to get the signed in user No current user
Run Code Online (Sandbox Code Playgroud)

当您指定 cookieStorage 配置时,您似乎需要手动应用缓存实例?我该怎么做,它会解决问题吗?

zak*_*um1 9

此配置有效:

{
    region: 'eu-west-1',
    userPoolId: 'eu-west-1_XXXXXX',
    userPoolWebClientId: 'XXXXXX',
    mandatorySignIn: false,
    cookieStorage: {
      domain: 'localhost',
      secure: false,
      path: '/',
      expires: 365,
    },
  }
Run Code Online (Sandbox Code Playgroud)

特别是,secure 必须为 false,localhost除非您使用的是 https(Firefox 会忽略这一点localhost,但 Chrome 和 Safari 不会)。