首页 > 解决方案 > AWS cognito 注册和登录 - 如何存储池和应用程序 ID

问题描述

我正在使用此示例来设置具有AWS Cognito用户池的注册/登录 UI:https ://medium.com/@gmonne/custom-authentication-using-aws-cognito-e0b489badc3f

作者建议通过创建一个 config.js 文件来保持用户池和应用程序 ID 的私密性,该文件将此信息保存在两个全局变量中。来自readme.md

在运行此代码之前,您应该在javascript名为config.js. 在这里,您应该使用名称在窗口对象上设置“用户池”ID 和应用程序客户端 ID:USER_POOL_IDCLIENT_ID

我在 config.js 中设置变量如下,但出现USER_POOL_ID is not defined错误。

var USER_POOL_ID: "us-east-1_#######";
var APP_CLIENT_ID: "7pcmh9gre807########";

从示例中的 cognito.js 文件:

(function(win, CognitoUserPool) {

var CognitoUserPool = window.AmazonCognitoIdentity.CognitoUserPool,
AWSCognito = window.AWSCognito,
CognitoIdentityServiceProvider = AWSCognito.CognitoIdentityServiceProvider,CognitoUserAttribute = CognitoIdentityServiceProvider.CognitoUserAttribute,
CognitoUser = CognitoIdentityServiceProvider.CognitoUser,
AuthenticationDetails = CognitoIdentityServiceProvider.AuthenticationDetails,
UserPool = new CognitoUserPool({
UserPoolId : window.USER_POOL_ID, // Your user pool id here
ClientId : window.CLIENT_ID, // Your client id here

如自述文件中所述,在窗口对象上设置 ID 的语法是什么?

标签: javascriptamazon-web-servicesamazon-cognito

解决方案


=使用not设置变量:,因此请更改config.js

var USER_POOL_ID = "us-east-1_#######";
var APP_CLIENT_ID = "7pcmh9gre807########";

不清楚这个文件是如何被使用的,但如果你想直接设置窗口对象,你会做

window.USER_POOL_ID = "us-east-1_#######";
window.APP_CLIENT_ID = "7pcmh9gre807########";

并且 cognito.js 代码没有使用正确的变量名,它没有APP_前缀,所以将最后一行更改为:

ClientId : window.APP_CLIENT_ID, // Your client id here

推荐阅读