Я получил AWS SES для работы с сервером Parse, используя
$ npm install parse-server-amazon-ses-email-adapter --save
После изменения server.js и настройки verifyUserEmails: true, я смог получить отсылку писем с подтверждением пользователя и щелчок, установив его в true,
Затем я добавил свой swift-код для сброса пароля и был воодушевлен тем, что когда я вводил электронное письмо, которое не было пользователем, оно знало и возвращало ошибку.Когда я указываю действительного пользователя без ошибок, но и без электронной почты ...
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, но я не могу понять, что включает эту функциональность.Кто-нибудь может помочь?Если я не смогу заставить это работать, мне придется начинать все сначала с почтового пистолета.
Это мой 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
});