Skip to content

Instantly share code, notes, and snippets.

@mikekunze
Last active December 12, 2015 09:29
Show Gist options
  • Save mikekunze/4751509 to your computer and use it in GitHub Desktop.
Save mikekunze/4751509 to your computer and use it in GitHub Desktop.
submitForm.coffee uses sessions to rate limit a form POST route
contact = (req, res)->
SubmitUsers = mongoose.model 'submit_users'
findObj =
session_id: req.session.id
SubmitUsers.findOne findObj, (err, user)->
if(!user)
userObj =
session_id: req.session.id
lastVisitedOn: Date.now()
lastSubmissionDate: Date.now()
newUser = new SubmitUsers userObj
newUser.save()
sendEmail(req, res)
if(user)
if user.lastSubmissionDate > Date.now() - 10000
# not allowed to submit
user.lastVisitedOn = Date.now()
user.save()
res.send({ success: false })
else
# allowed to submit
user.lastVisitedOn = Date.now()
user.lastSubmissionDate = Date.now()
user.save()
sendEmail(req, res)
return this
module.exports = contact
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment