loginSso.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. var options = uni.getStorageSync('options')
  62. if (options) {
  63. uni.redirectTo({
  64. url: '/pages/trade/shoe-style/ShoeStyleView'
  65. })
  66. } else { //如果没有上一页返回首页
  67. uni.redirectTo({
  68. url: '/pages/trade/shoe-style/index'
  69. })
  70. }
  71. };
  72. if (!this.ssoCode) {
  73. if (!localStorage.getItem('ssoLogout')) {
  74. localStorage.removeItem('ssoLogout');
  75. // setEnv();
  76. };
  77. ssoLogout();
  78. openWindowSso();
  79. return;
  80. };
  81. // 请求头
  82. getOpenToken().then(res => {
  83. removeEnv()
  84. setToken(res.data)
  85. this.$store.dispatch('GetInfo').then(res => {
  86. var options = uni.getStorageSync('options')
  87. if (options) {
  88. this.$tab.reLaunch('/pages/trade/shoe-style/ShoeStyleView')
  89. } else { //如果没有上一页返回首页
  90. this.$tab.reLaunch('/pages/trade/shoe-style/index')
  91. }
  92. })
  93. }).catch(err => {
  94. console.log('获取token失效');
  95. removeEnv();
  96. })
  97. }
  98. }
  99. }
  100. </script>
  101. <style lang="scss">
  102. #loader-wrapper .load_title span {
  103. font-weight: normal;
  104. font-style: italic;
  105. font-size: 13px;
  106. color: #FFF;
  107. opacity: 0.5;
  108. }
  109. </style>