CaptchaMiddleware.coffee 682 B

123456789101112131415161718192021
  1. request = require 'request'
  2. logger = require 'logger-sharelatex'
  3. Settings = require 'settings-sharelatex'
  4. module.exports = CaptchaMiddleware =
  5. validateCaptcha: (req, res, next) ->
  6. if !Settings.recaptcha?
  7. return next()
  8. response = req.body['g-recaptcha-response']
  9. options =
  10. form:
  11. secret: Settings.recaptcha.secretKey
  12. response: response
  13. json: true
  14. request.post "https://www.google.com/recaptcha/api/siteverify", options, (error, response, body) ->
  15. return next(error) if error?
  16. if !body?.success
  17. logger.warn {statusCode: response.statusCode, body: body}, 'failed recaptcha siteverify request'
  18. return res.sendStatus 400
  19. else
  20. return next()