使用默认Cloudfront dns放大cookie身份验证不起作用

时间:2019-10-08 18:59:53

标签: angular cookies amazon-cognito amazon-cloudfront aws-amplify

我和一位同事正在绞尽脑汁,所以希望你们中一个聪明的人可以指出我们在做错什么...

我们有一个来自S3的角度应用程序,其CloudFront分布在前端工作正常。我们正在使用AWS Amplify SDK通过以下方式(根据Amplify文档的建议)通过Cookie进行身份验证:

Amplify.configure({
  Auth: {
    region: environment.cognito_region,
    userPoolId: environment.cognito_user_pool_id,
    userPoolWebClientId: environment.cognito_user_pool_web_client_id,
    cookieStorage: {
        domain: '.dev.<our domain>.net',
        secure: true
    },
  }
});

我们要做的是启动指向其他s3网站的多个Cloudfront发行版,以进行功能分支测试。我们不想每次都创建dns条目,因此我们试图通过使用默认的cloudfront.net dns获得相同的方法。所以我们就这样做了:

Amplify.configure({
  Auth: {
    region: environment.cognito_region,
    userPoolId: environment.cognito_user_pool_id,
    userPoolWebClientId: environment.cognito_user_pool_web_client_id,
    cookieStorage: {
        domain: '.cloudfront.net',
        secure: true
    },
  }
});

我们将这种方法的云前分布更改为使用默认的SSL证书等,没有别名。

Cloudfront setup

但是这不起作用,因此我认为我们在这里缺少一些基本的东西,例如Cloudfront DNS条目不能以这种方式使用?这是我们在控制台中看到的内容:

Chrome console error

任何想法都将不胜感激!

干杯。

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题,问题是您必须使用cloudfront为您生成的整个域。 Cloudfront domain

Amplify.configure({
  Auth: {
    region: environment.cognito_region,
    userPoolId: environment.cognito_user_pool_id,
    userPoolWebClientId: environment.cognito_user_pool_web_client_id,
    cookieStorage: {
        domain: '.xxxxxxxxx.cloudfront.net',
        secure: true
    },
  }
});