fix: After entering the password for the public access link, the parameters carried by the URL address are missing (#3570)

This commit is contained in:
shaohuzhang1 2025-07-11 22:36:43 +08:00 committed by GitHub
parent 827c06c03f
commit 4c9d024b67
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 24 deletions

View File

@ -71,12 +71,13 @@ router.beforeEach(
params: {
accessToken: to.params.accessToken,
},
query: to.query,
})
}
return
}
if (p_token) {
next({ ...to, query: {} })
next({ ...to, query: to.query })
} else {
next()
}

View File

@ -10,9 +10,9 @@
class="mr-8"
style="background: none"
>
<img :src="chatUser.chat_profile?.icon" alt=""/>
<img :src="chatUser.chat_profile?.icon" alt="" />
</el-avatar>
<LogoIcon v-else height="32px" class="mr-8"/>
<LogoIcon v-else height="32px" class="mr-8" />
<h4>{{ chatUser.chat_profile?.application_name }}</h4>
</div>
</template>
@ -29,9 +29,9 @@
class="mr-8"
style="background: none"
>
<img :src="chatUser.chat_profile?.icon" alt=""/>
<img :src="chatUser.chat_profile?.icon" alt="" />
</el-avatar>
<LogoIcon v-else height="32px" class="mr-8"/>
<LogoIcon v-else height="32px" class="mr-8" />
<h4>{{ chatUser.chat_profile?.application_name }}</h4>
</div>
</template>
@ -104,7 +104,7 @@
</el-button>
</div>
<div v-if="showQrCodeTab">
<QrCodeTab :tabs="orgOptions"/>
<QrCodeTab :tabs="orgOptions" />
</div>
<div class="login-gradient-divider lighter mt-24" v-if="modeList.length > 1">
<span>{{ $t('views.login.moreMethod') }}</span>
@ -123,7 +123,7 @@
'font-size': item === 'OAUTH2' ? '8px' : '10px',
color: theme.themeInfo?.theme,
}"
>{{ item }}</span
>{{ item }}</span
>
</el-button>
<el-button
@ -133,7 +133,7 @@
class="login-button-circle color-secondary"
@click="changeMode('QR_CODE')"
>
<img src="@/assets/scan/icon_qr_outlined.svg" width="25px"/>
<img src="@/assets/scan/icon_qr_outlined.svg" width="25px" />
</el-button>
<el-button
v-if="item === 'LOCAL' && loginMode != 'LOCAL'"
@ -150,29 +150,29 @@
</UserLoginLayout>
</template>
<script setup lang="ts">
import {onMounted, ref, onBeforeMount} from 'vue'
import {useRoute, useRouter} from 'vue-router'
import type {FormInstance, FormRules} from 'element-plus'
import type {LoginRequest} from '@/api/type/login'
import { onMounted, ref, onBeforeMount } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import type { FormInstance, FormRules } from 'element-plus'
import type { LoginRequest } from '@/api/type/login'
import LoginContainer from '@/layout/login-layout/LoginContainer.vue'
import UserLoginLayout from '@/layout/login-layout/UserLoginLayout.vue'
import loginApi from '@/api/chat/chat.ts'
import {t, getBrowserLang} from '@/locales'
import { t, getBrowserLang } from '@/locales'
import useStore from '@/stores'
import {useI18n} from 'vue-i18n'
import { useI18n } from 'vue-i18n'
import QrCodeTab from '@/views/login/scanCompinents/QrCodeTab.vue'
import {MsgConfirm, MsgError} from '@/utils/message.ts'
import { MsgConfirm, MsgError } from '@/utils/message.ts'
import PasswordAuth from '@/views/chat/auth/component/password.vue'
import {isAppIcon} from '@/utils/common'
import { isAppIcon } from '@/utils/common'
const router = useRouter()
const {theme, chatUser} = useStore()
const {locale} = useI18n({useScope: 'global'})
const { theme, chatUser } = useStore()
const { locale } = useI18n({ useScope: 'global' })
const loading = ref<boolean>(false)
const route = useRoute()
const identifyCode = ref<string>('')
const {
params: {accessToken},
params: { accessToken },
} = route as any
const loginFormRef = ref<FormInstance>()
const loginForm = ref<LoginRequest>({
@ -209,11 +209,19 @@ const loginHandle = () => {
loginFormRef.value?.validate().then(() => {
if (loginMode.value === 'LDAP') {
chatUser.ldapLogin(loginForm.value).then((ok) => {
router.push({name: 'chat', params: {accessToken: chatUser.accessToken}})
router.push({
name: 'chat',
params: { accessToken: chatUser.accessToken },
query: route.query,
})
})
} else {
chatUser.login(loginForm.value).then((ok) => {
router.push({name: 'chat', params: {accessToken: chatUser.accessToken}})
router.push({
name: 'chat',
params: { accessToken: chatUser.accessToken },
query: route.query,
})
})
}
})
@ -292,8 +300,7 @@ function redirectAuth(authType: string, needMessage: boolean = false) {
.then(() => {
window.location.href = url
})
.catch(() => {
})
.catch(() => {})
} else {
console.log('url', url)
window.location.href = url
@ -328,7 +335,7 @@ onBeforeMount(() => {
}
loginMode.value = modeList.value[0] || 'LOCAL'
if (!modeList.value.includes('LOCAL') && !modeList.value.includes('LDAP')) {
loginMode.value = '';
loginMode.value = ''
}
if (modeList.value.length == 1 && ['CAS', 'OIDC', 'OAuth2'].includes(modeList.value[0])) {
redirectAuth(modeList.value[0])