diff --git a/yudao-ui-admin/src/views/login.vue b/yudao-ui-admin/src/views/login.vue index 785235dae..280cbd2d7 100644 --- a/yudao-ui-admin/src/views/login.vue +++ b/yudao-ui-admin/src/views/login.vue @@ -258,7 +258,8 @@ export default { // 设置登录中 this.loading = true; // 计算 redirectUri - const redirectUri = location.origin + '/social-login?type=' + socialTypeEnum.type + '&redirect=' + (this.redirect || "/"); // 重定向不能丢 + const redirectUri = location.origin + '/social-login?' + + encodeURIComponent('type=' + socialTypeEnum.type + '&redirect=' + (this.redirect || "/")); // 重定向不能丢 // const redirectUri = 'http://127.0.0.1:48080/api/gitee/callback'; // const redirectUri = 'http://127.0.0.1:48080/api/dingtalk/callback'; // 进行跳转 diff --git a/yudao-ui-admin/src/views/socialLogin.vue b/yudao-ui-admin/src/views/socialLogin.vue index 0dc1abef7..9364cada4 100644 --- a/yudao-ui-admin/src/views/socialLogin.vue +++ b/yudao-ui-admin/src/views/socialLogin.vue @@ -104,24 +104,19 @@ export default { state: undefined, }; }, - // watch: { - // $route: { - // handler: function(route) { - // this.redirect = route.query && route.query.redirect; - // }, - // immediate: true - // } - // }, created() { this.getCookie(); // 验证码开关 this.captchaEnable = getCaptchaEnable(); // 重定向地址 - this.redirect = this.$route.query.redirect ? decodeURIComponent(this.$route.query.redirect) : undefined; + this.redirect = this.getUrlValue('redirect'); // 社交登录相关 - this.type = this.$route.query.type; + this.type = this.getUrlValue('type'); this.code = this.$route.query.code; this.state = this.$route.query.state; + + // 尝试登录一下 + this.loading = true; this.$store.dispatch("SocialLogin", { code: this.code, state: this.state, @@ -183,6 +178,10 @@ export default { }); } }); + }, + getUrlValue(key) { + const url = new URL(decodeURIComponent(location.href)); + return url.searchParams.get(key); } } };