为React应用中基于JavaScript AWS Amplify SDK / AWS Cognito的身份验证分离用户



我有一个react原生web应用程序,完全基于AWS Cognito管理的用户池进行身份验证。所有与身份验证相关的屏幕(登录、注册、更改密码)都由AWS Amplify JavaScript SDK管理。几乎没有自定义客户端代码。

我们面临以下需求:我们需要分隔用户池开发生产: 2种风格的相同应用程序(相同的代码)需要使用AWS Cognito内部管理的不同池。

实现这样的配置需要什么?

特别是,我们有一个自动生成的(很久以前的)laws -exports.js文件看起来像:
// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.
const awsmobile = {
"aws_project_region": "us-east-1",
"aws_cognito_identity_pool_id": "us-east-1:[id]",
"aws_cognito_region": "us-east-1",
"aws_user_pools_id": "us-east-1_[id]",
"aws_user_pools_web_client_id": "[id]",
"oauth": {}
};
export default awsmobile;

aws_user_pools_id"是我们在Cognito中管理的池的ID。

加载这些数据的源代码如下所示:

import Amplify, { Auth } from 'aws-amplify';
import awsconfig from '../aws-exports';
Amplify.configure(awsconfig);
Auth.configure(awsconfig);

需要做什么?似乎覆盖自动生成的文件不是一个好主意。我们是否应该修复&;aws_user_pools_id&;值,在调用.configure()之前?我们需要有多个"aws_cognito_identity_pool_id"吗?和/或"aws_user_pools_web_client_id"(在这种情况下),或者我们可以在配置之间共享这些值?

如果有关于"如何"的好的文档,我将非常感谢。

提前感谢。

Max。

假设您正在使用amplify cli,您应该使用如下所示的环境。js文件不应该提交给git。相反,它应该使用amplify pull

生成并保持最新。

最新更新