是的,您可以做到,我已经做到了!(本意是撰写有关此主题的博客。我在一个多租户SAAS平台上工作,在该平台上,租户具有自己的Cognito身份提供商配置。我所做的是我有一个文件config.js
,看起来像这样,其中包含许多Cognito设置:(我正在使用ReactJS)
window.TENANT_CONFIG = {
REACT_APP_USERPOOL_REDIRECT_SIGNIN : "https://todo.somesite.com/",
REACT_APP_USERPOOL_REDIRECT_SIGNOUT : "https://todo.somesite.com/",
REACT_APP_WEB_CLIENT_ID : "todo",
REACT_APP_TENANT_NAME : "todo" ....
};
此图块作为javascript脚本包含在我的顶部 index.html
<script type="text/javascript" src="%PUBLIC_URL%/config.js"></script>
拉姆达
您需要一个Lambda函数,us-east-1
该函数将在Cloudfront发行版的Edge中成为Lambda。此函数必须是唯一的128 MB
,并且没有环境变量。您可以参考此文档,了解如何创建Lambda函数。但一般来说,您需要构建window.TEN...
。您可以阅读event.Records[0].cf.request.headers['host'][0].value
来确定您的呼叫是否来自一个域或另一个域,并构建适当的config.js
文件。我的Lambda函数实际上是从S3存储桶读取配置的。您的会有所不同。
CloudFront
如果可以生成正确的证书,则CloudFront
实际上只需要一个域。只要确保您已添加所有不同子域的CName即可。然后,你需要添加具有的路径模式的行为:config.js
。配置Lambda Function Associations
的Viewer Request
,并指定Lambda Function ARN
。而且你很好!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句