Hi, I’m new to Parse and stumped trying to configure email verification. I configured Parse to send the email (see below). It sent the email. I clicked the link:
https://www.danger.team/apps/dramawithfriends/verify_email?token=nXTt5eHdbeS2fHl3Cx3zMxdul&username=test1%40michaelcole.com
Parse responds:
Cannot GET /apps/dramawithfriends/verify_email
www.danger.team
has A records to 127.0.0.1, where nginx reverse proxies to localhost:1337. That URL also gives the same response:
http://localhost:1337/apps/dramawithfriends/verify_email?token=nXTt5eHdbeS2fHl3Cx3zMxdul&username=test1%40michaelcole.com
Cannot GET /apps/dramawithfriends/verify_email
I don’t see anything in the Parse logs.
Here’s the server config I pulled from the documentation:
const parseServer = new ParseServer({
appId: process.env.APPLICATION_ID,
masterKey: process.env.MASTER_KEY,
databaseURI: process.env.DATABASE_URI,
serverURL: process.env.SERVER_URL, // ends with '/parse'
// Email: https://github.com/parse-community/parse-server#email-verification-and-password-reset
verifyUserEmails: true,
preventLoginWithUnverifiedEmail: false, // defaults to false
publicServerURL: process.env.PUBLIC_SERVER_URL || process.env.SERVER_URL,
appName: 'Drama With Friends',
emailAdapter: {...},
customPages: {
invalidLink: `${process.env.PUBLIC_SERVER_URL}/hello/invalid-link`,
verifyEmailSuccess: `${process.env.PUBLIC_SERVER_URL}/hello/verified`,
choosePassword: `${process.env.PUBLIC_SERVER_URL}/hello/resetPassword`,
passwordResetSuccess: `${process.env.PUBLIC_SERVER_URL}/hello/passwordSaved`,
},
accountLockout: {
duration: 5, // duration policy setting determines the number of minutes that a locked-out account remains locked out before automatically becoming unlocked. Set it to a value greater than 0 and less than 100000.
threshold: 3, // threshold policy setting determines the number of failed sign-in attempts that will cause a user account to be locked. Set it to an integer value greater than 0 and less than 1000.
},
passwordPolicy: {
validatorPattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})/, // enforce password with at least 8 char with at least 1 lower case, 1 upper case and 1 digit
validationError: 'Password must contain lowercase, uppercase, and at least 1 digit.',
doNotAllowUsername: true, // optional setting to disallow username in passwords
resetTokenValidityDuration: 24*60*60, // expire after 24 hours
}
})
What am I missing?