nti56 dev token refresh

1、自动填充验证码 2、从json数据中取值单独放一份到localStorage中

当前为 2021-06-25 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name nti56 dev token refresh
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3.4
  5. // @description 1、自动填充验证码 2、从json数据中取值单独放一份到localStorage中
  6. // @author niushuai233
  7. // @run-at document-start
  8. // @match *://*.nti56.com/*
  9. // @match http://localhost/*
  10. // @match http://boot.jeecg.com/*
  11. // @require https://unpkg.com/ajax-hook@2.0.3/dist/ajaxhook.min.js
  12. // @grant none
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. filterCodeRequest();
  19.  
  20. function autoRefreshToken() {
  21. var localStorage = window.localStorage;
  22. var token = localStorage.getItem('pro__Access-Token');
  23. var imestoken = '根据key[pro__Access-Token]未找到[token]'
  24. if (token && token.length > 0) {
  25. imestoken = JSON.parse(token).value;
  26. }
  27. localStorage.setItem('imes_token', imestoken);
  28. console.log('imes token refresh success', imestoken);
  29. }
  30.  
  31. function filterCodeRequest() {
  32.  
  33. var code_url = '/ils/sys/getCheckCode';
  34. var isCodeUrl = false;
  35. ah.proxy({
  36. //请求发起前进入
  37. onRequest: (config, handler) => {
  38. var url_arr = config.url.split("?")
  39. console.log(url_arr, new Date().toLocaleString())
  40. if (code_url == url_arr[0]) {
  41. isCodeUrl = true
  42. }
  43. handler.next(config);
  44. },
  45. onError: (err, handler) => {
  46. console.log(err.type)
  47. handler.next(err)
  48. },
  49. //请求成功后进入
  50. onResponse: (response, handler) => {
  51. autoRefreshToken()
  52. var res = response.response;
  53. if (isCodeUrl && response.status == 200) {
  54. res = JSON.parse(res);
  55. console.log(new Date().toLocaleString(), 'res=', res);
  56. autoFillCode(res.result.code);
  57. isCodeUrl = false
  58. }
  59. handler.next(response)
  60. }
  61. });
  62. }
  63.  
  64. function autoFillCode(code) {
  65.  
  66. const inputArr = document.querySelectorAll('.ant-input')
  67.  
  68. if (!inputArr) {
  69. return;
  70. }
  71.  
  72. var findInput = null;
  73. for(var i=0; i< inputArr.length; i++) {
  74. var tmp = inputArr[i];
  75. if (tmp.placeholder && tmp.placeholder == '请输入验证码') {
  76. findInput = tmp;
  77. }
  78. }
  79.  
  80. if (!findInput) {
  81. return;
  82. }
  83.  
  84. const button = document.querySelector('.login-button')
  85.  
  86. const event = document.createEvent('HTMLEvents')
  87. event.initEvent('input', false, true)
  88.  
  89. findInput.value = code // 修改用户名输入框的值
  90. findInput.dispatchEvent(event) // 手动触发输入框的input事件
  91.  
  92. button.click() // 触发按钮点击事件
  93. }
  94.  
  95.  
  96.  
  97. })();