Przeglądaj źródła

增加微信绑定type

liuyu 5 lat temu
rodzic
commit
685cf5a4d2
1 zmienionych plików z 34 dodań i 21 usunięć
  1. 34 21
      app/controller/weixin.js

+ 34 - 21
app/controller/weixin.js

@@ -4,6 +4,7 @@ const assert = require('assert');
 const _ = require('lodash');
 const _ = require('lodash');
 const uuid = require('uuid');
 const uuid = require('uuid');
 const urljoin = require('url-join');
 const urljoin = require('url-join');
+const stringRandom = require('string-random');
 const Controller = require('egg').Controller;
 const Controller = require('egg').Controller;
 
 
 /**
 /**
@@ -76,16 +77,22 @@ class WeixinController extends Controller {
       const val = await this.app.redis.get(key);
       const val = await this.app.redis.get(key);
       const { redirect_uri, type, uid } = JSON.parse(val);
       const { redirect_uri, type, uid } = JSON.parse(val);
       console.log('redirect_uri-->' + redirect_uri);
       console.log('redirect_uri-->' + redirect_uri);
-      // 通过openid取得用户信息
-      const user = await this.ctx.service.user.findByOpenid(openid);
-      if (user) {
-        const token = await this.ctx.service.login.createJwt(user);
-        const to_uri = urljoin(redirect_uri, `?token=${token}`);
-        // TODO: 重定性页面
-        console.log('to_uri222-->' + to_uri);
-        this.ctx.redirect(to_uri);
-      } else {
-        console.log('rrr--->' + redirect_uri);
+      if(type === '0'){
+        // 通过openid取得用户信息
+        const user = await this.ctx.service.user.findByOpenid(openid);
+        if (user) {
+          const token = await this.ctx.service.login.createJwt(user);
+          const to_uri = urljoin(redirect_uri, `?token=${token}`);
+          // TODO: 重定性页面
+          console.log('to_uri222-->' + to_uri);
+          this.ctx.redirect(to_uri);
+        } else {
+          console.log('rrr--->' + redirect_uri);
+          const to_uri = urljoin(redirect_uri, `?openid=${openid}`);
+          // TODO: 重定性页面
+          this.ctx.redirect(to_uri);
+        }
+      } elseif(type === '1'){
         const user = await this.ctx.service.user.fetch(uid);
         const user = await this.ctx.service.user.fetch(uid);
         let _type = '';
         let _type = '';
         if (user) {
         if (user) {
@@ -104,21 +111,27 @@ class WeixinController extends Controller {
   // GET 用户授权内部测试接口
   // GET 用户授权内部测试接口
   async authTest() {
   async authTest() {
     const { redirect_uri, type, uid } = this.ctx.query;
     const { redirect_uri, type, uid } = this.ctx.query;
-    const openid = '12345678';
+    const openid = stringRandom();
     this.ctx.logger.debug(`[auth-test] reditect_uri - ${redirect_uri}, openid - ${openid}`);
     this.ctx.logger.debug(`[auth-test] reditect_uri - ${redirect_uri}, openid - ${openid}`);
     assert(redirect_uri, '回调地址不能为空');
     assert(redirect_uri, '回调地址不能为空');
     assert(openid, 'openid不能为空');
     assert(openid, 'openid不能为空');
 
 
-    const user = await this.ctx.service.user.findByOpenid(openid);
-    console.log(user);
-    if (user) {
-      const token = await this.ctx.service.login.createJwt(user);
-      const to_uri = urljoin(redirect_uri, `?token=${token}`);
-      // TODO: 重定性页面
-      console.log('to_uri222-->' + to_uri);
-      this.ctx.redirect(to_uri);
-    } else {
-      console.log('rrr--->' + redirect_uri);
+    if(type === '0'){
+      // 通过openid取得用户信息
+      const user = await this.ctx.service.user.findByOpenid(openid);
+      if (user) {
+        const token = await this.ctx.service.login.createJwt(user);
+        const to_uri = urljoin(redirect_uri, `?token=${token}`);
+        // TODO: 重定性页面
+        console.log('to_uri222-->' + to_uri);
+        this.ctx.redirect(to_uri);
+      } else {
+        console.log('rrr--->' + redirect_uri);
+        const to_uri = urljoin(redirect_uri, `?openid=${openid}`);
+        // TODO: 重定性页面
+        this.ctx.redirect(to_uri);
+      }
+    } elseif(type === '1'){
       const user = await this.ctx.service.user.fetch(uid);
       const user = await this.ctx.service.user.fetch(uid);
       let _type = '';
       let _type = '';
       if (user) {
       if (user) {