// @/utils/sso.js /** * 解析SSO链接参数 * @param {string} url 完整URL * @returns {object} 解析后的参数 */ export const parseSSOUrl = (url) => { try { const urlObj = new URL(url) const params = {} urlObj.searchParams.forEach((value, key) => { params[key] = decodeURIComponent(value) }) // 提取页面路径 const path = urlObj.pathname.replace(/\//g, '') if (path) { params._page = path } return params } catch (e) { console.error('解析SSO URL失败:', e) return {} } } /** * 构建SSO登录链接 * @param {string} baseUrl 基础URL * @param {string} userName 用户名 * @param {string} passWord 密码 * @param {string} targetPage 目标页面 * @param {object} pageParams 页面参数 * @returns {string} SSO链接 */ export const buildSSOUrl = (baseUrl, userName, passWord, targetPage, pageParams = {}) => { const params = new URLSearchParams() params.append('userName', userName) params.append('passWord', passWord) if (targetPage) { params.append('redirect', encodeURIComponent(targetPage)) } // 添加页面参数 Object.keys(pageParams).forEach(key => { params.append(key, pageParams[key]) }) return `${baseUrl}/pages/login/Login?${params.toString()}` }