我正在尝试将Cognito设置为使用cookies而不是localStorage作为凭据,这样我就可以让用户在x.foo.com和y.foo.com等域之间保持登录。第一步是让它在本地主机上工作,但我被卡住了。
documentation显示了一个简单的配置更改应该能解决问题吗?
以下调试消息将发送到控制台:
[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当您指定cookieStorage配置时,您是否需要手动应用缓存实例?我如何做到这一点,它能解决问题吗?
发布于 2020-06-30 04:41:31
此配置有效:
{
region: 'eu-west-1',
userPoolId: 'eu-west-1_XXXXXX',
userPoolWebClientId: 'XXXXXX',
mandatorySignIn: false,
cookieStorage: {
domain: 'localhost',
secure: false,
path: '/',
expires: 365,
},
}特别是,除非你使用的是https,否则localhost的secure必须为false (对于localhost,火狐会忽略这一点,但Chrome和Safari不会)。
https://stackoverflow.com/questions/59409205
复制相似问题