imageCaptcha.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const imageCaptch = require('svg-captcha')
  2. const express = require('express')
  3. const session = require('express-session')
  4. const bodyParser = require('body-parser')
  5. const app = express()
  6. app.all('*', (req, res, next) => {
  7. res.header("Access-Control-Allow-Origin", req.headers.origin); //设置来源
  8. res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  9. res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  10. res.header("Access-Control-Max-Age", "604800000");
  11. res.header("Access-Control-Allow-Credentials", true);
  12. res.header("X-Powered-By", ' 3.2.1');
  13. // res.header("Content-Type", "application/json;charset=utf-8");
  14. next();
  15. });
  16. app.use(session({
  17. secret: 'captcha',
  18. cookie: {
  19. maxAge: 300000
  20. },
  21. saveUninitialized: true,
  22. resave: true,
  23. name: 'imageVerification'
  24. }))
  25. app.use(bodyParser.urlencoded({extended:false}))
  26. app.get('/getImage', (req, res) => {
  27. const svgimg = imageCaptch.create({
  28. size: 4,
  29. ignoreChars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
  30. noise: 2,
  31. color: true
  32. })
  33. req.session.imgtext = svgimg.text
  34. res.send(svgimg.data)
  35. })
  36. app.post('/postImagetext', (req, res) => {
  37. if(req.session.imgtext){
  38. if(req.session.imgtext == req.body.imgtexter){
  39. res.send({
  40. seccess: '验证码正确'
  41. })
  42. }else{
  43. res.status(202).send({
  44. err: '验证码错误'
  45. })
  46. }
  47. }else{
  48. res.status(203).send({
  49. err: '未获取验证码'
  50. })
  51. }
  52. })
  53. app.listen('9000', () => {
  54. console.log('service listing port 9000')
  55. })