Description
I have the same exact problem as mentioned here, but the issue was closed and not resolved. I have setup my Parse server (v3.1.2) on Elastic Beanstalk and everything is working well. I have setup "reset email" and "verify email" using my Mailgun account and the parse-server-mailgun module. My "verify email" works correctly and an email is sent to the user but I can not get my "reset password" to function. I expect there is a parameter I am missing in my index.js file but I cant see what it can be. Given that the "verify email" correctly sends the link that verifies the account it must be something specific to the "reset password" options. I have googled this extensively without finding what the problem is.
The verbose log after sending a request for "reset password" does not offer any information and looks like this (seems correct):
[36mverbose[39m: REQUEST for [POST] /parse/requestPasswordReset: {
"email": "me@<removed>"
} method=POST, url=/parse/requestPasswordReset, host=<removed>.com,
x-real-ip=<removed>, x-forwarded-for=<removed>, <removed>, content-
length=35, accept=*/*, accept-encoding=br, gzip, deflate, accept-
language=en-us, content-type=application/json; charset=utf-8, user-
agent=<removed>/299 CFNetwork/975.0.3 Darwin/18.2.0 (x86_64), x-
parse-app-build-version=299, x-parse-app-display-version=1.0.0, x-
parse-application-id=<removed>, x-parse-client-key=<removed>, x-
parse-client-version=osx1.17.2, x-parse-installation-id=<removed>,
x-parse-os-version=10.14.1 (18B75), x-forwarded-port=443, x-
forwarded-proto=https, email=me@<removed>
[36mverbose[39m: RESPONSE from [POST] /parse/requestPasswordReset: {
"response": {}}
My index.js file for my server looks like this for the email settings:
....
databaseURI: databaseUri,
cacheAdapter: redisCache,
cloud: path.join(__dirname + '/cloud/main.js'),
appId: process.env.APP_ID,
masterKey: process.env.MASTER_KEY,
serverURL: process.env.SERVER_URL,
allowClientClassCreation: false,
maxUploadSize: '10mb',
jsonLogs: true,
logsFolder: path.join(__dirname+'/logs'),
sessionLength: 31536000, // 1 year in seconds
expireInactiveSessions: true,
verbose: process.env.VERBOSE,
revokeSessionOnPasswordReset: true,
expireInactiveSessions: true,
enableAnonymousUsers: process.env.ENABLE_ANONYMOUS_USERS,
publicServerURL: process.env.PUBLIC_SERVER_URL,
appName: 'removed',
schemaCacheTTL: 5000,
verifyUserEmails: process.env.VERIFY_USER_EMAIL,
emailVerifyTokenValidityDuration: 43200,
emailAdapter: {
module: 'parse-server-mailgun',
options: {
fromAddress: process.env.DEFAULT_FROM_ADDRESS
domain: process.env.MAILGUN_DOMAIN
host:'api.mailgun.net',
apiKey: process.env.MAILGUN_API_KEY
templates: {
passwordResetEmail: {
subject: 'Reset your password',
pathPlainText: path.join(__dirname+'/public/assets/HTML/password_reset.text'),
pathHtml: path.join(__dirname+'/public/assets/HTML/password_reset.html'),
callback: (user) => {
return {
firstName: user.get('firstName')
}
}
},
verificationEmail: {
subject: 'Confirm your account',
pathPlainText: path.join(__dirname+'/public/assets/HTML/email_verify.text'),
pathHtml: path.join(__dirname+'/public/assets/HTML/email_verify.html'),
callback: (user) => {
return {
firstName: user.get('firstName')
}
}
}
}
}
},
Any insight as to what may be the problem or what I may be lacking would be appreciated. Thank You. Cheers, Trond
Originally posted by @trondkr in #4022 (comment)