按照文档写的:
AV.Cloud.onVerified('email', function (request) { console.log('User ' + request.object + ' is verified by Email.'); });
注册后前往邮箱打开验证邮件并进行验证,没有触发上述代码。
是某个用户某次验证没有触发,还是所有用户邮件验证都没触发?方便提供应用的 App ID 和相应用户的 ObjectId 吗?
我现在还是自己在测试,没有其他用户,晚上回去把相关信息提供给你。
@weakish 你好,我又测试了一下还是没有触发,相关信息如下:App ID: 2rl8JuV7gkfHbAiIz7NMh4mv-gzGzoHsz用户 ID: 60c8a7c51bdb986f5faa8b06
可能是因为发生相关事件的时候云引擎休眠了。
@weakish 刚看了一下,云引擎处于“运行中”还是没有触发。如果是因为处于失眠中,那么我测试这么多次总应该有一次触发呀,不会每次都处于失眠中吧。
需要是测试前确认「运行中」才行,如果是测试后再去看,那可能是因为 hook 调用唤醒了云引擎实例,但因为实例启动需要时间,还没到运行 hook 代码的时候 hook 就因为超时而失败。
另外,如果邮箱处于「已验证」状态,再调用 requestEmailVerify 是不会触发 hook 的。
requestEmailVerify
请您排除以上情况后再测试一下,如果还是无法触发,再提供一下用户的 objectId 和测试的大概时间段,我们查一下。
@weakish我确实是看到「运行中 」状态才去验证邮箱的。今晚又试了一下,我现在购买了标准实例,应该不会休眠了。刚才在 21:00-21:15 之间测试了一下,也还是没看到日志里输出。
App ID: 2rl8JuV7gkfHbAiIz7NMh4mv-gzGzoHsz用户 ID:60cb490f591ae10031c036c3
麻烦帮忙排查一下。
我们查了下日志,确实没有调用 hook。请问您测试的时候是如何触发 hook 的,如果是在本地调用 requestEmailVerify 之类的接口的话,还请您在客户端开下调试日志,贴下包含完整网络请求的详细日志。
就是用户从邮箱里的按钮进入验证页面,验证页面调用 https://MY_APP_URL.com/1.1/verifyEmail/${token} 接口来验证用户邮箱触发的。PS,我设置了验证邮箱才可以登录。
https://MY_APP_URL.com/1.1/verifyEmail/${token}
我们查了下,这种情况下代码的处理有 bug,会导致 onVerified hook 不能正常调用。非常感谢反馈问题,我们将尽快修复这个 bug.
抱歉,忘了更新了,这个问题在 6 月下旬已经修复。