- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个两步忘记密码的过程。我正在使用 React 渲染两种形式。第一个表单需要一个电子邮件地址,提交后,成功执行我的 ResetPassword() 函数。该函数成功通过电子邮件向用户发送安全代码。这部分工作正常。
然后,呈现下一个表单,其中包含安全代码和密码(密码和确认密码 - 显然它们必须相同)。然后,在提交此表单后,它会执行confirmPassword() 函数。然而,该函数进入 catch block 并抛出以下异常:
exception:TypeError: Converting circular structure to JSON
由于我对 Node.js 非常陌生,所以我不确定它来自哪里,也不知道如何调试它。有什么建议么?
我的两个功能如下。同样,第二个功能失败了。另外,我在抛出异常后在Cognito中确认,用户状态仍然处于Enabled/RESET_REQUIRED 状态。
注意:我已经用 (//ERROR IS HAPPENING HERE) 标记了代码 - 这是抛出异常的代码部分。请参阅下面代码的最底部。
resetPassword() {
const userPool = new CognitoUserPool({
UserPoolId: config.cognito.USER_POOL_ID,
ClientId: config.cognito.APP_CLIENT_ID
});
// setup cognitoUser first
let cognitoUser = new CognitoUser({
Username: this.state.email,
Pool: userPool
});
// initiate the forgotPassword flow, this part sends a security code to the email address given.
const promise = new Promise((resolve, reject) => {
cognitoUser.forgotPassword({
onSuccess: function(result) {
console.log(util.inspect(result, { showHidden: true, depth: null }));
// var str = JSON.stringify(result, null, 4);
// console.log("success, result data: " + str);
resolve(result);
},
onFailure: function(err) {
console.log(util.inspect(err, { showHidden: true, depth: null }));
// var str = JSON.stringify(err, null, 4);
// console.log("error, e data: " + str);
reject(err);
},
undefined
});
});
return promise;
}
confirmPassword(username, verificationCode, newPassword) {
const userPool = new CognitoUserPool({
UserPoolId: config.cognito.USER_POOL_ID,
ClientId: config.cognito.APP_CLIENT_ID
});
// setup cognitoUser first
let cognitoUser = new CognitoUser({
Username: this.state.email,
Pool: userPool
});
const promise = new Promise((resolve, reject) => {
cognitoUser.confirmPassword(verificationCode, newPassword, {
onFailure: (err) => {
console.log("onFailure:" + err);
reject(err);
},
onSuccess: (res) => {
console.log("onSuccess:");
resolve();
},
undefined
});
});
return promise;
}
handleSubmit = async event => {
event.preventDefault();
this.setState({ isLoading: true, emailSubmitted: true });
try {
let newUser = await this.resetPassword();
console.log(util.inspect(newUser, { showHidden: true, depth: null }));
// var str = JSON.stringify(newUser, null, 4);
// console.log("newUser:" + str);
} catch (e) {
console.log(util.inspect(e, { showHidden: true, depth: null }));
// var str = JSON.stringify(e, null, 4);
// console.log("Exception:" + str);
}
this.setState({ isLoading: false });
}
handleConfirmationSubmit = async event => {
event.preventDefault();
this.setState({ isLoading: true });
try {
let confirm_result = await this.confirmPassword(this.state.securityCode, this.state.password, this);
console.log(util.inspect(confirm_result, { showHidden: true, depth: null }));
// console.log("confirm_result:" + confirm_result);
} catch (e) {
// console.log(util.inspect(e));
// console.log("exception:" + e);
// ERROR IS HAPPENING HERE.
console.log(util.inspect(e, { showHidden: true, depth: null }));
console.log(new Error().stack);
/* Stack trace shows:
Error
at ForgotPassword._callee2$ (ForgotPassword.js:154)
at tryCatch (runtime.js:62)
at Generator.invoke [as _invoke] (runtime.js:296)
at Generator.prototype.(anonymous function) [as throw] (http://localhost:3000/static/js/bundle.js:61658:21)
at step (ForgotPassword.css?776b:26)
at ForgotPassword.css?776b:26
*/
this.setState({ isLoading: false });
}
}
最佳答案
我记得当我尝试跨两个不同上下文修改 Cognito 用户数据而底层数据集相同时,发生了这个循环 JSON 错误
。在我的用例中,我在浏览器和 lambda 函数中修改了一次数据集。我不记得 Cognito 给我返回了直观的错误消息来解决这个问题。当我开始在浏览器和 lambda 回调上操作不同的数据集时,这种情况就消失了。也许你可以尝试如下操作,看看是否有效 -
const userPool = new CognitoUserPool({
UserPoolId: config.cognito.USER_POOL_ID,
ClientId: config.cognito.APP_CLIENT_ID
});
// setup cognitoUser first
let cognitoUser = new CognitoUser({
Username: this.state.email,
Pool: userPool
});
resetPassword() {
// initiate the forgotPassword flow, this part sends a security code to the email address given.
const promise = new Promise((resolve, reject) => {
cognitoUser.forgotPassword({
onSuccess: function(result) {
console.log(util.inspect(result, { showHidden: true, depth: null }));
// var str = JSON.stringify(result, null, 4);
// console.log("success, result data: " + str);
resolve(result);
},
onFailure: function(err) {
console.log(util.inspect(err, { showHidden: true, depth: null }));
// var str = JSON.stringify(err, null, 4);
// console.log("error, e data: " + str);
reject(err);
},
undefined
});
});
return promise;
}
confirmPassword(username, verificationCode, newPassword) {
const promise = new Promise((resolve, reject) => {
cognitoUser.confirmPassword(verificationCode, newPassword, {
onFailure: (err) => {
console.log("onFailure:" + err);
reject(err);
},
onSuccess: (res) => {
console.log("onSuccess:");
resolve();
},
undefined
});
});
return promise;
}
关于node.js - Amazon Cognito 确认密码失败并显示 (TypeError : Converting circular structure to JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417859/
环形缓冲区和循环链表有什么区别? Ring Buffer 的目的是什么,而循环链表不能,反之亦然? 最佳答案 环形缓冲区是一个连续的内存块,其中包含您的项目,当您到达终点时,您会循环回到起点: +--
我有一个像这样的多级依赖关系图,我需要检测该图中的任何循环引用。 A = B 乙=丙 C = [D, B] D = [C, A] 有人有这样的问题吗? 有什么解决办法??? 用英语表示感谢和抱歉。 =
尝试编写一个reduce函数来过滤掉任何重复项。我知道还有其他方法可以解决这个问题,但我正在尝试练习递归函数。 function addToSet(a, b) { a.add(b); retu
我想知道是否有人已经实现/知道(最好是 javascript)将处理循环间隔的间隔树算法。通过循环,我的意思是开始 > 结束的间隔。请注意,这也需要限制间隔的大小。 这只是常见区间树问题的一个子案例吗
我有一段代码,其中声明了两种数据类型。我已经将两者都自动派生为类型类 enum 的成员,但是,我不喜欢它们不是“圆形”的。我的意思是调用 succ Sun应该让我Mon . succ Dec应该导致
运行此代码时: function arrayToList(arr) { if (arr.length == 1) { return { value: arr[0],
我有以下模块结构: /components ├── Button.js ├── Checkbox.js ├── index.js ├── DateSelect ├── DateSelect.j
为了检查光线与三角形的碰撞,我们可以首先查看光线是否与三角形的平面发生碰撞。如果是,我们然后检查所有三角形边的交点是否在同一边。如果为真,则意味着该点位于三角形内部。此过程与矩形和其他凸图形类似。 这
我遇到了同样的问题,如下所示: NHibernate - not-null property reference a null or transient value 根本原因就像 Alun Harfo
我想以“循环”方式使用函数,如下例所示: fun cll1 (s)= cll2(s); fun cll2 (s)= cll3(s); fun cll3 (s)= cll(s); 编写此代码会在 SML
我想根据现有列的滞后值在 pyspark.sql.DataFrame 中创建一个新列。但是......我也希望最后一个值成为第一个值,第一个值成为最后一个值。这是一个例子: df = spark.cr
我正在使用 Microsoft.ServiceModel.Samples.CircularTracecListener 二进制文件来实现 Web 服务上的错误日志记录。 它应该写入一个文件,直到达到
我有一个由 8 个罗盘点组成的数组,从 SW 顺时针编号到 S: 2 3 4 1 5 0 7 6 我想计算从一点到另一点的最短路线是顺时针 (+1) 还是逆时针 (-1)。例如。从 7 到 5 是
我知道如何解决基本的循环依赖示例,有两个类,每个类都需要知道另一个存在。 但是,我现在的情况是,示例更复杂,前向声明不是可以解决该问题的东西。 考虑这三个文件 // my_thread.hpp tem
我正在开发一款用于在线播放歌曲的应用程序。我可以通过点击播放这首歌。 我的问题是我在所有 Activity 中都有一个 CircularSeekBar,我需要在所有屏幕上管理它。如果从任何 Activ
我正在尝试实现动画 shown here .它工作正常,除了 unreveal 动画,显示黑屏片刻。并非所有设备/api 版本都存在该故障。 Google Nexus 10 (API 22) 的 Ge
我正在使用 Canvas 创建倒数计时器循环,但有一个简单的问题,我需要将天数除以 364 天,当天数大于 364 天时,天数消失: 我需要的是这样的: (function($) { jQuery
我想在不使用 SVG 的情况下实现这样的效果: https://codepen.io/arforcee/pen/erbKi?limit=all&page=2&q=circular+loader 这是否
这个问题在这里已经有了答案: How to create a circle with links on border side (8 个答案) 关闭 4 年前。
我遇到了一个小设计问题。 如下情况 库界面 包含每个模型类的接口(interface)(仅限 getter 和 setter) 图书馆业务逻辑 包含接口(interface)库和 DAL 的实现。使用
我是一名优秀的程序员,十分优秀!