diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
index a203ffe..2a202fd 100644
--- a/frontend/src/router/index.ts
+++ b/frontend/src/router/index.ts
@@ -169,6 +169,15 @@ const routes: RouteRecordRaw[] = [
layout: 'blank'
}
},
+ {
+ path: '/auth/dingtalk/callback',
+ name: 'DingTalkCallback',
+ component: () => import('@/views/DingTalkCallback.vue'),
+ meta: {
+ title: '钉钉登录回调',
+ layout: 'blank'
+ }
+ },
{
path: '/:pathMatch(.*)*',
name: 'NotFound',
@@ -194,10 +203,10 @@ router.beforeEach(async (to, from, next) => {
const authStore = useAuthStore()
const token = localStorage.getItem('token')
- // 如果访问登录页
- if (to.path === '/login') {
- // 如果已登录,跳转到首页
- if (token && authStore.isLoggedIn) {
+ // 如果访问登录页或回调页,允许访问
+ if (to.path === '/login' || to.path === '/auth/dingtalk/callback') {
+ // 如果是登录页且已登录,跳转到首页
+ if (to.path === '/login' && token && authStore.isLoggedIn) {
next('/')
return
}
diff --git a/frontend/src/views/DingTalkCallback.vue b/frontend/src/views/DingTalkCallback.vue
new file mode 100644
index 0000000..f51eb2c
--- /dev/null
+++ b/frontend/src/views/DingTalkCallback.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+