imes token refresh

从json数据中取值单独放一份到localStorage中

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

  1. // ==UserScript==
  2. // @name imes token refresh
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description 从json数据中取值单独放一份到localStorage中
  6. // @author niushuai233
  7. // @run-at document-start
  8. // @match *://*.nti56.com/*
  9. // @require https://unpkg.com/ajax-hook@2.0.3/dist/ajaxhook.min.js
  10. // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16. var localStorage = window.localStorage;
  17. var token = localStorage.getItem('pro__Access-Token');
  18. var imestoken = '根据key[pro__Access-Token]未找到[token]'
  19. if (token && token.length > 0) {
  20. imestoken = JSON.parse(token).value;
  21. }
  22. localStorage.setItem('imes_token', imestoken);
  23. console.log('imes token refresh success', imestoken);
  24.  
  25. var code_url = '/ils/sys/getCheckCode';
  26. var isCodeUrl = false;
  27.  
  28. ah.proxy({
  29. //请求发起前进入
  30. onRequest: (config, handler) => {
  31. var url_arr = config.url.split("?")
  32. console.log(url_arr, new Date().toLocaleString())
  33. if (code_url == url_arr[0]) {
  34. isCodeUrl = true
  35. }
  36. handler.next(config);
  37. },
  38. //请求发生错误时进入,比如超时;注意,不包括http状态码错误,如404仍然会认为请求成功
  39. onError: (err, handler) => {
  40. console.log(err.type)
  41. handler.next(err)
  42. },
  43. //请求成功后进入
  44. onResponse: (response, handler) => {
  45. var res = response.response;
  46. if (isCodeUrl) {
  47. res = JSON.parse(res);
  48. autoFillCode(res.result.code);
  49. isCodeUrl = false
  50. }
  51. handler.next(response)
  52. }
  53. })
  54.  
  55. function autoFillCode(code) {
  56. const usernameInput = document.querySelector('input[id=inputCode]')
  57. const button = document.querySelector('.login-button')
  58.  
  59. const event = document.createEvent('HTMLEvents')
  60. event.initEvent('input', false, true)
  61.  
  62. usernameInput.value = code // 修改用户名输入框的值
  63. usernameInput.dispatchEvent(event) // 手动触发输入框的input事件
  64.  
  65. button.click() // 触发按钮点击事件
  66. }
  67.  
  68.  
  69.  
  70. })();