Jelajahi Sumber

验证码登陆

maguohua 8 tahun lalu
induk
melakukan
de8bedc85c
5 mengubah file dengan 28 tambahan dan 2 penghapusan
  1. 0 1
      README.md
  2. 0 1
      app.js
  3. 24 0
      controller/v1/captchas.js
  4. 2 0
      package.json
  5. 2 0
      routes/v1.js

+ 0 - 1
README.md

@@ -69,7 +69,6 @@ npm run dev (需开启本地mongodb,如果没有安装mongodb,可以运行 n
 - [ ] 帐户信息
 - [ ] 服务中心
 - [ ] 红包
-- [ ] 支付(支付宝,微信)
 - [ ] 后台管理系统
 - [ ] 前后台同构,美化路由地址
 - [ ] 部署上线

+ 0 - 1
app.js

@@ -28,7 +28,6 @@ app.all('*', (req, res, next) => {
 const MongoStore = connectMongo(session);
 
 app.use(session({
-	name: config.session.name,
   	secret: config.session.secret,
   	resave: true,
   	saveUninitialized: false,

+ 24 - 0
controller/v1/captchas.js

@@ -0,0 +1,24 @@
+'use strict';
+
+import captchapng from 'captchapng';
+
+class Captchas {
+	constructor(){
+
+	}
+	//验证码
+	async getCaptchas(req, res, next){
+		const cap = parseInt(Math.random()*9000+1000);
+		const p = new captchapng(80,30, cap);
+        p.color(0, 0, 0, 0); 
+        p.color(80, 80, 80, 255);
+        const base64 = p.getBase64();
+        req.session.cookie.maxAge = 300000;
+        req.session.cap = cap;
+        res.send({
+        	code: 'data:image/png;base64,' + base64
+        });
+	}
+}
+
+export default new Captchas()

+ 2 - 0
package.json

@@ -25,6 +25,8 @@
     "babel-preset-stage-3": "^6.22.0",
     "babel-register": "^6.24.0",
     "bluebird": "^3.5.0",
+    "captchapng": "0.0.1",
+    "ccap": "^0.6.10",
     "config-lite": "^1.5.0",
     "connect-flash": "^0.1.1",
     "connect-mongo": "^1.3.2",

+ 2 - 0
routes/v1.js

@@ -7,6 +7,7 @@ import Carts from '../controller/v1/carts'
 import Address from '../controller/v1/address'
 import Remark from '../controller/v1/remark'
 import BaseComponent from '../prototype/baseComponent'
+import Captchas from '../controller/v1/captchas'
 const baseHandle = new BaseComponent();
 const router = express.Router();
 
@@ -18,5 +19,6 @@ router.post('/addimg/:type', baseHandle.uploadImg);
 router.post('/carts/checkout', Carts.checkout);
 router.get('/carts/:cart_id/addresses', Address.getAddress);
 router.get('/carts/:cart_id/remarks', Remark.getRemarks);
+router.post('/captchas', Captchas.getCaptchas);
 
 export default router