gpt4 book ai didi

swift - 使用 Swift Parse Server 和 AWS SES 请求重置电子邮件密码

转载 作者:行者123 更新时间:2023-11-30 10:57:52 24 4
gpt4 key购买 nike

我使用 AWS SES 与 Parse 服务器配合使用

$ npm install parse-server-amazon-ses-email-adapter --save

更改 server.js 并设置 verifyUserEmails: true 后,我能够发送验证用户电子邮件并单击将其设置为 true。

然后,我添加了用于重置密码的快速代码,当我输入了一个不属于它认识的用户的电子邮件并返回了错误。当我输入有效用户时没有错误,但也没有电子邮件...

PFUser.requestPasswordResetForEmail(inBackground: userName.text!) { (success: Bool, error: Error?) in
if success {
let alert = UIAlertController(title: "Success", message: "Please check your email and follow the instructions", preferredStyle: UIAlertControllerStyle.alert)
let ok = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: { (UIAlertAction) in
self.dismiss(animated: true, completion: nil)
})
alert.addAction(ok)

self.present(alert, animated: true, completion: nil)
}
else {
print(error?.localizedDescription ?? "")
}
}

我是否可能缺少需要在 server.js 中添加的内容?我将 html 和文本模板放在正确的位置,就像验证用户一样。我搜索了互联网,认为也许有类似 verifyUserEmails 设置之类的东西,但我不知道是什么打开了该功能。有人可以帮忙吗?如果我不能让它工作,我将不得不用 mailgun 重新开始。

这是我的server.js供引用:

var api = new ParseServer({
databaseURI: process.env.MONGODB_URI,
cloud: "./node_modules/parse-server/lib/cloud-code/Parse.Cloud.js",
appId: "c4f3ec***************",
masterKey: process.env.MASTER_KEY,
publicServerURL: process.env.SERVER_URL,
verifyUserEmails: true,
appName: process.env.APPNAME,
emailVerifyTokenValidityDuration: 2 * 60 * 60, // in seconds (2 hours = 7200 seconds)
filesAdapter: {
"module": "@parse/s3-files-adapter",
"options": {
"bucket": process.env.S3_BUCKET,
}
},
emailAdapter: new AWSEmailAdapter({
// The address that your emails come from
fromAddress: process.env.EMAIL_FROM_ADDRESS,
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: 'us-east-1',
// The template section
templates: {
passwordResetEmail: {
subject: 'Reset your password',
pathPlainText: resolve(__dirname, './email_templates/password_reset_email.txt'),
pathHtml: resolve(__dirname, './email_templates/password_reset_email.html'),
callback: (user) => {
return {
firstName: user.get('firstName')
}
}
// Now you can use {{firstName}} in your templates
},
verificationEmail: {
subject: 'Confirm your account',
pathPlainText: resolve(__dirname, './templates/verification_email.txt'),
pathHtml: resolve(__dirname, './templates/verification_email.html'),
callback: (user) => {
return {
firstName: user.get('firstName')
}
}
// Now you can use {{firstName}} in your templates
},
}
}),
serverURL: process.env.SERVER_URL
});

最佳答案

天哪,我想删除这个问题,因为解决方案太尴尬了,但我决定在这里回答它,以防其他人有类似的问题,并且我的代码片段(和错误)会有启发性。

在我上面包含的 server.js 中,大部分内容实际上都已正确设置。验证电子邮件发出而重置密码电子邮件没有发出的原因是因为我更改了电子邮件模板的路径,并且只有正确的电子邮件模板进行验证(./templates 与 ./email_templates)。简而言之,我更正了该路径,将更改保存到 server.js,然后运行 ​​pm2 restart 0 重新启动服务器,瞧,密码正在重置!

关于swift - 使用 Swift Parse Server 和 AWS SES 请求重置电子邮件密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53736917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com