actionCreators.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import * as constants from './constants';
  2. import { fromJS } from 'immutable';
  3. import * as config from '../config';
  4. import axios from '../axios_auth';
  5. import md5 from 'js-md5';
  6. import CryptoJs from 'crypto-js';
  7. const CRYPTO_KEY = 'cld2_login_csrf_';
  8. export const setSectionName = (sectionName) => {
  9. return (dispatch) => {
  10. dispatch({
  11. type: constants.CHANGE_SECTION_NAME,
  12. data: sectionName
  13. });
  14. }
  15. }
  16. export const getStaff = () => {
  17. return (dispatch) => {
  18. axios.get(config.CLD2API + '/staff').then((res) => {
  19. const data = res.data;
  20. if (data.code === 200) {
  21. dispatch({
  22. type: constants.CHANGE_STAFF,
  23. data: fromJS(data.data)
  24. });
  25. } else { }
  26. }).catch((e) => {
  27. console.log(e)
  28. })
  29. }
  30. }
  31. //csrfToken
  32. export const loginSafety = () => {
  33. return (dispatch) => {
  34. axios.get(config.CLD2API + '/loginSafety').then((res) => {
  35. const data = res.data;
  36. if (res.status === 200) {
  37. var index = CryptoJs.AES.decrypt(data.t11, CryptoJs.enc.Utf8.parse(CRYPTO_KEY), {
  38. iv: CryptoJs.enc.Utf8.parse('4875sdfw895scx85'),
  39. mode: CryptoJs.mode.CBC,
  40. format: CryptoJs.format.Hex,
  41. }).toString(CryptoJs.enc.Utf8);;
  42. let hashKeys = Object.keys(data);
  43. let values = Object.values(data);
  44. let csrfToken = '';
  45. hashKeys.forEach(function (v, i) {
  46. if (v == 't' + index) {
  47. csrfToken = values[i];
  48. }
  49. });
  50. dispatch({
  51. type: constants.CHANGE_CSRF_TOKEN,
  52. data: md5(csrfToken+index)
  53. });
  54. } else { }
  55. }).catch((e) => {
  56. console.log(e)
  57. })
  58. }
  59. }