mirror of
				https://github.com/whyour/qinglong.git
				synced 2025-11-04 20:06:08 +08:00 
			
		
		
		
	更新cookie管理添加cookie逻辑
This commit is contained in:
		
							parent
							
								
									7f7d4d4f24
								
							
						
					
					
						commit
						8526a57caf
					
				| 
						 | 
					@ -16,10 +16,10 @@ export default (app: Router) => {
 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
        if (req) {
 | 
					        if (req) {
 | 
				
			||||||
          const cookieService = Container.get(CookieService);
 | 
					          const cookieService = Container.get(CookieService);
 | 
				
			||||||
          const { shici } = await cookieService.getYiYan();
 | 
					          const { qrurl } = await cookieService.getQrUrl();
 | 
				
			||||||
          return res.status(200).json({ code: 200, data: shici });
 | 
					          return res.send({ code: 200, qrcode: qrurl });
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          return res.status(200).json({ err: 1, msg: 'loginFaild' });
 | 
					          return res.send({ code: 1, msg: 'loginFaild' });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      } catch (e) {
 | 
					      } catch (e) {
 | 
				
			||||||
        logger.error('🔥 error: %o', e);
 | 
					        logger.error('🔥 error: %o', e);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,8 @@ import winston from 'winston';
 | 
				
			||||||
import fetch from 'node-fetch';
 | 
					import fetch from 'node-fetch';
 | 
				
			||||||
import { getFileContentByName } from '../config/util';
 | 
					import { getFileContentByName } from '../config/util';
 | 
				
			||||||
import config from '../config';
 | 
					import config from '../config';
 | 
				
			||||||
import FormData from 'form-data';
 | 
					import * as fs from 'fs';
 | 
				
			||||||
 | 
					import got from 'got';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum Status {
 | 
					enum Status {
 | 
				
			||||||
  '正常',
 | 
					  '正常',
 | 
				
			||||||
| 
						 | 
					@ -22,8 +23,10 @@ export default class CookieService {
 | 
				
			||||||
  private token: string = '';
 | 
					  private token: string = '';
 | 
				
			||||||
  constructor(@Inject('logger') private logger: winston.Logger) {}
 | 
					  constructor(@Inject('logger') private logger: winston.Logger) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public async getYiYan(): Promise<any> {
 | 
					  public async getQrUrl(): Promise<{ qrurl: string }> {
 | 
				
			||||||
    return { yiYan: 'test' };
 | 
					    await this.step1();
 | 
				
			||||||
 | 
					    const qrurl = await this.step2();
 | 
				
			||||||
 | 
					    return { qrurl };
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private async step1() {
 | 
					  private async step1() {
 | 
				
			||||||
| 
						 | 
					@ -49,17 +52,18 @@ export default class CookieService {
 | 
				
			||||||
          Host: 'plogin.m.jd.com',
 | 
					          Host: 'plogin.m.jd.com',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      this.praseSetCookies(text);
 | 
					      await this.praseSetCookies(text);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
      this.logger.error(error.response.body);
 | 
					      this.logger.error(error);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private async step2() {
 | 
					  private async step2() {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      if (this.cookies == '') {
 | 
					      if (this.cookies == '') {
 | 
				
			||||||
        return 0;
 | 
					        return '';
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      console.log(this.cookies);
 | 
				
			||||||
      let timeStamp = new Date().getTime();
 | 
					      let timeStamp = new Date().getTime();
 | 
				
			||||||
      let url =
 | 
					      let url =
 | 
				
			||||||
        'https://plogin.m.jd.com/cgi-bin/m/tmauthreflogurl?s_token=' +
 | 
					        'https://plogin.m.jd.com/cgi-bin/m/tmauthreflogurl?s_token=' +
 | 
				
			||||||
| 
						 | 
					@ -67,7 +71,7 @@ export default class CookieService {
 | 
				
			||||||
        '&v=' +
 | 
					        '&v=' +
 | 
				
			||||||
        timeStamp +
 | 
					        timeStamp +
 | 
				
			||||||
        '&remember=true';
 | 
					        '&remember=true';
 | 
				
			||||||
      const response = await fetch(url, {
 | 
					      const response: any = await fetch(url, {
 | 
				
			||||||
        method: 'post',
 | 
					        method: 'post',
 | 
				
			||||||
        body: JSON.stringify({
 | 
					        body: JSON.stringify({
 | 
				
			||||||
          lang: 'chs',
 | 
					          lang: 'chs',
 | 
				
			||||||
| 
						 | 
					@ -91,37 +95,28 @@ export default class CookieService {
 | 
				
			||||||
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
 | 
					            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
 | 
				
			||||||
          Host: 'plogin.m.jd.com',
 | 
					          Host: 'plogin.m.jd.com',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      }).then((res) => res.json);
 | 
					      });
 | 
				
			||||||
      // this.token = response.body.token
 | 
					      const body = await response.json();
 | 
				
			||||||
      // this.okl_token = response.headers['set-cookie'][0]
 | 
					      this.token = body.token;
 | 
				
			||||||
      // this.okl_token = this.okl_token.substring(this.okl_token.indexOf("=") + 1, this.okl_token.indexOf(";"))
 | 
					      const setCookies = response.headers.get('set-cookie');
 | 
				
			||||||
 | 
					      this.okl_token = setCookies.match(/okl_token=(.+?);/)[1];
 | 
				
			||||||
      var qrUrl =
 | 
					      var qrUrl =
 | 
				
			||||||
        'https://plogin.m.jd.com/cgi-bin/m/tmauth?appid=300&client_type=m&token=' +
 | 
					        'https://plogin.m.jd.com/cgi-bin/m/tmauth?appid=300&client_type=m&token=' +
 | 
				
			||||||
        this.token;
 | 
					        this.token;
 | 
				
			||||||
      return qrUrl;
 | 
					      return qrUrl;
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
      console.log(error.response.body);
 | 
					      console.log(error.response.body);
 | 
				
			||||||
      return 0;
 | 
					      return '';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private praseSetCookies(response: any) {
 | 
					  private async praseSetCookies(response: any) {
 | 
				
			||||||
    this.s_token = response.body.s_token;
 | 
					    const body = await response.json();
 | 
				
			||||||
    this.guid = response.headers['set-cookie'][0];
 | 
					    this.s_token = body.s_token;
 | 
				
			||||||
    this.guid = this.guid.substring(
 | 
					    const setCookies = response.headers.get('set-cookie');
 | 
				
			||||||
      this.guid.indexOf('=') + 1,
 | 
					    this.guid = setCookies.match(/guid=(.+?);/)[1];
 | 
				
			||||||
      this.guid.indexOf(';'),
 | 
					    this.lsid = setCookies.match(/lsid=(.+?);/)[1];
 | 
				
			||||||
    );
 | 
					    this.lstoken = setCookies.match(/lstoken=(.+?);/)[1];
 | 
				
			||||||
    this.lsid = response.headers['set-cookie'][2];
 | 
					 | 
				
			||||||
    this.lsid = this.lsid.substring(
 | 
					 | 
				
			||||||
      this.lsid.indexOf('=') + 1,
 | 
					 | 
				
			||||||
      this.lsid.indexOf(';'),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    this.lstoken = response.headers['set-cookie'][3];
 | 
					 | 
				
			||||||
    this.lstoken = this.lstoken.substring(
 | 
					 | 
				
			||||||
      this.lstoken.indexOf('=') + 1,
 | 
					 | 
				
			||||||
      this.lstoken.indexOf(';'),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    this.cookies =
 | 
					    this.cookies =
 | 
				
			||||||
      'guid=' +
 | 
					      'guid=' +
 | 
				
			||||||
      this.guid +
 | 
					      this.guid +
 | 
				
			||||||
| 
						 | 
					@ -133,26 +128,14 @@ export default class CookieService {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private getCookie(response: any) {
 | 
					  private getCookie(response: any) {
 | 
				
			||||||
    var TrackerID = response.headers['set-cookie'][0];
 | 
					    const setCookies = response.headers['set-cookie'];
 | 
				
			||||||
    TrackerID = TrackerID.substring(
 | 
					    var TrackerID = setCookies[0].match(/TrackerID=(.+?);/)[1];
 | 
				
			||||||
      TrackerID.indexOf('=') + 1,
 | 
					    var pt_key = setCookies[1].match(/pt_key=(.+?);/)[1];
 | 
				
			||||||
      TrackerID.indexOf(';'),
 | 
					    var pt_pin = setCookies[2].match(/pt_pin=(.+?);/)[1];
 | 
				
			||||||
    );
 | 
					    var pt_token = setCookies[3].match(/pt_token=(.+?);/)[1];
 | 
				
			||||||
    var pt_key = response.headers['set-cookie'][1];
 | 
					    var pwdt_id = setCookies[4].match(/pwdt_id=(.+?);/)[1];
 | 
				
			||||||
    pt_key = pt_key.substring(pt_key.indexOf('=') + 1, pt_key.indexOf(';'));
 | 
					    var s_key = setCookies[5].match(/s_key=(.+?);/)[1];
 | 
				
			||||||
    var pt_pin = response.headers['set-cookie'][2];
 | 
					    var s_pin = setCookies[6].match(/s_pin=(.+?);/)[1];
 | 
				
			||||||
    pt_pin = pt_pin.substring(pt_pin.indexOf('=') + 1, pt_pin.indexOf(';'));
 | 
					 | 
				
			||||||
    var pt_token = response.headers['set-cookie'][3];
 | 
					 | 
				
			||||||
    pt_token = pt_token.substring(
 | 
					 | 
				
			||||||
      pt_token.indexOf('=') + 1,
 | 
					 | 
				
			||||||
      pt_token.indexOf(';'),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    var pwdt_id = response.headers['set-cookie'][4];
 | 
					 | 
				
			||||||
    pwdt_id = pwdt_id.substring(pwdt_id.indexOf('=') + 1, pwdt_id.indexOf(';'));
 | 
					 | 
				
			||||||
    var s_key = response.headers['set-cookie'][5];
 | 
					 | 
				
			||||||
    s_key = s_key.substring(s_key.indexOf('=') + 1, s_key.indexOf(';'));
 | 
					 | 
				
			||||||
    var s_pin = response.headers['set-cookie'][6];
 | 
					 | 
				
			||||||
    s_pin = s_pin.substring(s_pin.indexOf('=') + 1, s_pin.indexOf(';'));
 | 
					 | 
				
			||||||
    this.cookies =
 | 
					    this.cookies =
 | 
				
			||||||
      'TrackerID=' +
 | 
					      'TrackerID=' +
 | 
				
			||||||
      TrackerID +
 | 
					      TrackerID +
 | 
				
			||||||
| 
						 | 
					@ -177,19 +160,29 @@ export default class CookieService {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public async addCookie() {
 | 
					  public async addCookie() {
 | 
				
			||||||
    const cookie: any = await this.checkLogin();
 | 
					    const res: any = await this.checkLogin();
 | 
				
			||||||
    if (cookie.body.errcode == 0) {
 | 
					    if (res.body.errcode === 0) {
 | 
				
			||||||
      let ucookie = this.getCookie(cookie);
 | 
					      let ucookie = this.getCookie(res);
 | 
				
			||||||
      return ucookie;
 | 
					      let content = getFileContentByName(config.confFile);
 | 
				
			||||||
 | 
					      const regx = /.*Cookie[0-9]{1}\=\"(.+?)\"/g;
 | 
				
			||||||
 | 
					      const lastCookie = (content.match(regx) as any[]).pop();
 | 
				
			||||||
 | 
					      const cookieRegx = /Cookie([0-9]+)\=.+?/.exec(lastCookie);
 | 
				
			||||||
 | 
					      if (cookieRegx) {
 | 
				
			||||||
 | 
					        const num = parseInt(cookieRegx[1]) + 1;
 | 
				
			||||||
 | 
					        const newCookie = `${lastCookie}\nCookie${num}="${ucookie}"`;
 | 
				
			||||||
 | 
					        const result = content.replace(lastCookie, newCookie);
 | 
				
			||||||
 | 
					        fs.writeFileSync(config.confFile, result);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return { cookie: ucookie };
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      return '';
 | 
					      return res.body;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private async checkLogin() {
 | 
					  private async checkLogin() {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      if (this.cookies == '') {
 | 
					      if (this.cookies == '') {
 | 
				
			||||||
        return 0;
 | 
					        return '';
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      let timeStamp = new Date().getTime();
 | 
					      let timeStamp = new Date().getTime();
 | 
				
			||||||
      let url =
 | 
					      let url =
 | 
				
			||||||
| 
						 | 
					@ -197,20 +190,15 @@ export default class CookieService {
 | 
				
			||||||
        this.token +
 | 
					        this.token +
 | 
				
			||||||
        '&ou_state=0&okl_token=' +
 | 
					        '&ou_state=0&okl_token=' +
 | 
				
			||||||
        this.okl_token;
 | 
					        this.okl_token;
 | 
				
			||||||
      let payload = {
 | 
					      return got.post(url, {
 | 
				
			||||||
 | 
					        responseType: 'json',
 | 
				
			||||||
 | 
					        form: {
 | 
				
			||||||
          lang: 'chs',
 | 
					          lang: 'chs',
 | 
				
			||||||
          appid: 300,
 | 
					          appid: 300,
 | 
				
			||||||
          returnurl:
 | 
					          returnurl:
 | 
				
			||||||
            'https://wqlogin2.jd.com/passport/LoginRedirect?state=1100399130787&returnurl=//home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action',
 | 
					            'https://wqlogin2.jd.com/passport/LoginRedirect?state=1100399130787&returnurl=//home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action',
 | 
				
			||||||
          source: 'wq_passport',
 | 
					          source: 'wq_passport',
 | 
				
			||||||
      };
 | 
					        },
 | 
				
			||||||
      let form = new FormData();
 | 
					 | 
				
			||||||
      for (const key in payload) {
 | 
					 | 
				
			||||||
        form.append(key, (payload as any)[key] as any);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      const response = await fetch(url, {
 | 
					 | 
				
			||||||
        method: 'post',
 | 
					 | 
				
			||||||
        body: form,
 | 
					 | 
				
			||||||
        headers: {
 | 
					        headers: {
 | 
				
			||||||
          Referer:
 | 
					          Referer:
 | 
				
			||||||
            'https://plogin.m.jd.com/login/login?appid=300&returnurl=https://wqlogin2.jd.com/passport/LoginRedirect?state=' +
 | 
					            'https://plogin.m.jd.com/login/login?appid=300&returnurl=https://wqlogin2.jd.com/passport/LoginRedirect?state=' +
 | 
				
			||||||
| 
						 | 
					@ -224,10 +212,8 @@ export default class CookieService {
 | 
				
			||||||
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
 | 
					            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					 | 
				
			||||||
      return response;
 | 
					 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
      console.log(error.response.body);
 | 
					      console.log(error);
 | 
				
			||||||
      let res: any = {};
 | 
					      let res: any = {};
 | 
				
			||||||
      res.body = { check_ip: 0, errcode: 222, message: '出错' };
 | 
					      res.body = { check_ip: 0, errcode: 222, message: '出错' };
 | 
				
			||||||
      res.headers = {};
 | 
					      res.headers = {};
 | 
				
			||||||
| 
						 | 
					@ -278,10 +264,7 @@ export default class CookieService {
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .then((x) => {
 | 
					      .then((x) => x.json())
 | 
				
			||||||
        console.log(x);
 | 
					 | 
				
			||||||
        return x.json();
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
      .then((x) => {
 | 
					      .then((x) => {
 | 
				
			||||||
        console.log(x.data.userInfo);
 | 
					        console.log(x.data.userInfo);
 | 
				
			||||||
        if (x.retcode === '0' && x.data && x.data.userInfo) {
 | 
					        if (x.retcode === '0' && x.data && x.data.userInfo) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,6 +40,7 @@
 | 
				
			||||||
    "express-basic-auth": "^1.2.0",
 | 
					    "express-basic-auth": "^1.2.0",
 | 
				
			||||||
    "express-jwt": "^6.0.0",
 | 
					    "express-jwt": "^6.0.0",
 | 
				
			||||||
    "form-data": "^4.0.0",
 | 
					    "form-data": "^4.0.0",
 | 
				
			||||||
 | 
					    "got": "^11.8.2",
 | 
				
			||||||
    "jsonwebtoken": "^8.5.1",
 | 
					    "jsonwebtoken": "^8.5.1",
 | 
				
			||||||
    "lodash": "^4.17.20",
 | 
					    "lodash": "^4.17.20",
 | 
				
			||||||
    "mailgun-js": "^0.22.0",
 | 
					    "mailgun-js": "^0.22.0",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -70,19 +70,24 @@ const Config = () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const getCookie = async (modal: { destroy: () => void }) => {
 | 
					  const getCookie = async (modal: { destroy: () => void }) => {
 | 
				
			||||||
    for (let i = 0; i < 50; i++) {
 | 
					    for (let i = 0; i < 50; i++) {
 | 
				
			||||||
      const result = await request.get(`${config.apiPrefix}cookie`);
 | 
					      const {
 | 
				
			||||||
      console.log(i, result);
 | 
					        data: { cookie, errcode, message },
 | 
				
			||||||
      if (result && result.cookie) {
 | 
					      } = await request.get(`${config.apiPrefix}cookie`);
 | 
				
			||||||
 | 
					      if (cookie) {
 | 
				
			||||||
        notification.success({
 | 
					        notification.success({
 | 
				
			||||||
          message: 'Cookie获取成功',
 | 
					          message: 'Cookie获取成功',
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        modal.destroy();
 | 
					        modal.destroy();
 | 
				
			||||||
        Modal.success({
 | 
					        Modal.success({
 | 
				
			||||||
          title: '获取Cookie成功',
 | 
					          title: '获取Cookie成功',
 | 
				
			||||||
          content: <div>{result.cookie}</div>,
 | 
					          content: <div>{cookie}</div>,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      if (errcode !== 176) {
 | 
				
			||||||
 | 
					        notification.error({ message });
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      await sleep(2000);
 | 
					      await sleep(2000);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -109,9 +114,6 @@ const Config = () => {
 | 
				
			||||||
        <Button key="1" type="primary" onClick={updateConfig}>
 | 
					        <Button key="1" type="primary" onClick={updateConfig}>
 | 
				
			||||||
          保存
 | 
					          保存
 | 
				
			||||||
        </Button>,
 | 
					        </Button>,
 | 
				
			||||||
        <Button key="2" type="primary" onClick={showQrCode}>
 | 
					 | 
				
			||||||
          扫码获取Cookie
 | 
					 | 
				
			||||||
        </Button>,
 | 
					 | 
				
			||||||
      ]}
 | 
					      ]}
 | 
				
			||||||
      header={{
 | 
					      header={{
 | 
				
			||||||
        style: {
 | 
					        style: {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@ const columns = [
 | 
				
			||||||
    title: '用户名',
 | 
					    title: '用户名',
 | 
				
			||||||
    dataIndex: 'pin',
 | 
					    dataIndex: 'pin',
 | 
				
			||||||
    key: 'pin',
 | 
					    key: 'pin',
 | 
				
			||||||
    align: 'center',
 | 
					    align: 'center' as const,
 | 
				
			||||||
    render: (text: string, record: any) => {
 | 
					    render: (text: string, record: any) => {
 | 
				
			||||||
      return <span>{decodeURIComponent(text)}</span>;
 | 
					      return <span>{decodeURIComponent(text)}</span>;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					@ -30,13 +30,13 @@ const columns = [
 | 
				
			||||||
    title: '昵称',
 | 
					    title: '昵称',
 | 
				
			||||||
    dataIndex: 'nickname',
 | 
					    dataIndex: 'nickname',
 | 
				
			||||||
    key: 'nickname',
 | 
					    key: 'nickname',
 | 
				
			||||||
    align: 'center',
 | 
					    align: 'center' as const,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    title: '值',
 | 
					    title: '值',
 | 
				
			||||||
    dataIndex: 'cookie',
 | 
					    dataIndex: 'cookie',
 | 
				
			||||||
    key: 'cookie',
 | 
					    key: 'cookie',
 | 
				
			||||||
    align: 'center',
 | 
					    align: 'center' as const,
 | 
				
			||||||
    render: (text: string, record: any) => {
 | 
					    render: (text: string, record: any) => {
 | 
				
			||||||
      return (
 | 
					      return (
 | 
				
			||||||
        <span
 | 
					        <span
 | 
				
			||||||
| 
						 | 
					@ -55,7 +55,7 @@ const columns = [
 | 
				
			||||||
    title: '状态',
 | 
					    title: '状态',
 | 
				
			||||||
    key: 'status',
 | 
					    key: 'status',
 | 
				
			||||||
    dataIndex: 'status',
 | 
					    dataIndex: 'status',
 | 
				
			||||||
    align: 'center',
 | 
					    align: 'center' as const,
 | 
				
			||||||
    render: (text: string, record: any) => {
 | 
					    render: (text: string, record: any) => {
 | 
				
			||||||
      return (
 | 
					      return (
 | 
				
			||||||
        <Space size="middle">
 | 
					        <Space size="middle">
 | 
				
			||||||
| 
						 | 
					@ -111,6 +111,7 @@ const Config = () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const showQrCode = () => {
 | 
					  const showQrCode = () => {
 | 
				
			||||||
    request.get(`${config.apiPrefix}qrcode`).then(async (data) => {
 | 
					    request.get(`${config.apiPrefix}qrcode`).then(async (data) => {
 | 
				
			||||||
 | 
					      if (data.qrcode) {
 | 
				
			||||||
        const modal = Modal.info({
 | 
					        const modal = Modal.info({
 | 
				
			||||||
          title: '二维码',
 | 
					          title: '二维码',
 | 
				
			||||||
          content: (
 | 
					          content: (
 | 
				
			||||||
| 
						 | 
					@ -135,23 +136,32 @@ const Config = () => {
 | 
				
			||||||
          ),
 | 
					          ),
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        getCookie(modal);
 | 
					        getCookie(modal);
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        notification.error({ message: '获取二维码失败' });
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const getCookie = async (modal: { destroy: () => void }) => {
 | 
					  const getCookie = async (modal: { destroy: () => void }) => {
 | 
				
			||||||
    for (let i = 0; i < 50; i++) {
 | 
					    for (let i = 0; i < 50; i++) {
 | 
				
			||||||
      const result = await request.get(`${config.apiPrefix}cookie`);
 | 
					      const {
 | 
				
			||||||
      if (result && result.cookie) {
 | 
					        data: { cookie, errcode, message },
 | 
				
			||||||
 | 
					      } = await request.get(`${config.apiPrefix}cookie`);
 | 
				
			||||||
 | 
					      if (cookie) {
 | 
				
			||||||
        notification.success({
 | 
					        notification.success({
 | 
				
			||||||
          message: 'Cookie获取成功',
 | 
					          message: 'Cookie获取成功',
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        modal.destroy();
 | 
					        modal.destroy();
 | 
				
			||||||
        Modal.success({
 | 
					        Modal.success({
 | 
				
			||||||
          title: '获取Cookie成功',
 | 
					          title: '获取Cookie成功',
 | 
				
			||||||
          content: <div>{result.cookie}</div>,
 | 
					          content: <div>{cookie}</div>,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      if (errcode !== 176) {
 | 
				
			||||||
 | 
					        notification.error({ message });
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      await sleep(2000);
 | 
					      await sleep(2000);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -199,7 +209,7 @@ const Config = () => {
 | 
				
			||||||
        columns={columns}
 | 
					        columns={columns}
 | 
				
			||||||
        pagination={{ hideOnSinglePage: true }}
 | 
					        pagination={{ hideOnSinglePage: true }}
 | 
				
			||||||
        dataSource={value}
 | 
					        dataSource={value}
 | 
				
			||||||
        rowKey="value"
 | 
					        rowKey="pin"
 | 
				
			||||||
        size="middle"
 | 
					        size="middle"
 | 
				
			||||||
        bordered
 | 
					        bordered
 | 
				
			||||||
      />
 | 
					      />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user