index.vue 785 B

123456789101112131415161718192021222324252627282930313233343536
  1. <template>
  2. <div v-loading="loading" class="social-login"></div>
  3. </template>
  4. <script setup lang="ts">
  5. import {socialLogin} from '@/api/login';
  6. import {setToken} from '@/utils/auth';
  7. const route = useRoute();
  8. const router = useRouter();
  9. /**
  10. * 接收Route传递的参数
  11. * @param {Object} route.query.
  12. */
  13. const code = route.query.code;
  14. const state = route.query.state;
  15. const source = route.query.source as string;
  16. const loading = ref(true);
  17. await socialLogin(source, code, state)
  18. .then(async (res) => {
  19. if (res.code !== 200) {
  20. ElMessage.error(res.msg);
  21. router.go(-2);
  22. return;
  23. }
  24. loading.value = false;
  25. setToken(res.msg);
  26. ElMessage.success('登录成功');
  27. router.go(-2);
  28. })
  29. .catch(() => {
  30. loading.value = false;
  31. });
  32. </script>