loginSso.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div id="loader-wrapper">
  3. <div id="loader"></div>
  4. <div class="loader-section section-left"></div>
  5. <div class="loader-section section-right"></div>
  6. <div class="load_title">sso单点登录中,请耐心等待</div>
  7. </div>
  8. </template>
  9. <script>
  10. import {
  11. getCodeImg
  12. } from '@/api/login'
  13. import {
  14. setSsoAdminToken,
  15. getOpenToken,
  16. openWindowSso,
  17. ssoLogout,
  18. getSsoAdminToken,
  19. setEnv,
  20. removeEnv,
  21. setToken,
  22. getToken,
  23. isLoginSso
  24. } from '@/utils/auth';
  25. export default {
  26. data() {
  27. return {
  28. codeUrl: '',
  29. ssoCode: '',
  30. }
  31. },
  32. onLoad(query) {
  33. if (!isLoginSso) {
  34. uni.redirectTo({
  35. url: '/pages/login'
  36. })
  37. return false
  38. }
  39. // console.log(query, 3333)
  40. this.ssoCode = query.ssoCode
  41. setSsoAdminToken(this.ssoCode);
  42. // console.log(getSsoAdminToken(), 'getSsoAdminToken')
  43. this.loginSso()
  44. },
  45. methods: {
  46. params() {
  47. var query = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+", "g"));
  48. console.log(query, 'query')
  49. query = query || '';
  50. var result = {};
  51. for (var i = 0; i < query.length; i++) {
  52. var item = query[i].substring(1).split('=');
  53. result[item[0]] = item[1];
  54. }
  55. return result;
  56. },
  57. loginSso() {
  58. // var route = useRoute();
  59. // const ssoCode = route.query.ssoCode;
  60. if (getSsoAdminToken() && getToken()) {
  61. uni.redirectTo({
  62. url: '/pages/index'
  63. })
  64. };
  65. if (!this.ssoCode) {
  66. if (!localStorage.getItem('ssoLogout')) {
  67. localStorage.removeItem('ssoLogout');
  68. // setEnv();
  69. };
  70. ssoLogout();
  71. openWindowSso();
  72. return;
  73. };
  74. // 请求头
  75. getOpenToken().then(res => {
  76. removeEnv()
  77. setToken(res.data)
  78. // var options = uni.getStorageSync('options')
  79. this.$tab.reLaunch('/pages/index')
  80. }).catch(err => {
  81. console.log('获取token失效');
  82. removeEnv();
  83. })
  84. }
  85. }
  86. }
  87. </script>
  88. <style lang="scss">
  89. #loader-wrapper .load_title span {
  90. font-weight: normal;
  91. font-style: italic;
  92. font-size: 13px;
  93. color: #FFF;
  94. opacity: 0.5;
  95. }
  96. </style>