debug: 添加钉钉免密登录调试日志
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
yuliang_guo
2026-01-29 17:18:40 +08:00
parent dd20bf2e78
commit ad969e39d4
2 changed files with 45 additions and 6 deletions

View File

@@ -44,9 +44,25 @@ export interface DingtalkConfig {
* 检测是否在钉钉环境中 * 检测是否在钉钉环境中
*/ */
export function isDingtalkEnv(): boolean { export function isDingtalkEnv(): boolean {
if (typeof window === 'undefined') return false if (typeof window === 'undefined') {
if (!window.dd) return false console.log('[钉钉检测] window 不存在')
return window.dd.env.platform !== 'notInDingTalk' return false
}
// 首先通过 User-Agent 检测
const ua = navigator.userAgent.toLowerCase()
const isDingTalkUA = ua.includes('dingtalk') || ua.includes('aliapp')
console.log('[钉钉检测] UA检测:', isDingTalkUA, 'UA:', ua.substring(0, 100))
if (!window.dd) {
console.log('[钉钉检测] window.dd 不存在但UA检测为:', isDingTalkUA)
return isDingTalkUA // 如果 UA 显示是钉钉但 SDK 还没加载,也返回 true
}
const platform = window.dd.env?.platform
console.log('[钉钉检测] dd.env.platform:', platform)
return platform !== 'notInDingTalk'
} }
/** /**

View File

@@ -314,37 +314,60 @@ const handleDingtalkLogin = () => {
*/ */
const initDingtalkLogin = async () => { const initDingtalkLogin = async () => {
try { try {
console.log('[钉钉初始化] 开始初始化...')
console.log('[钉钉初始化] window.dd 存在:', !!window.dd)
console.log('[钉钉初始化] User-Agent:', navigator.userAgent)
// 获取钉钉配置 // 获取钉钉配置
const response = await getDingtalkConfig() const response = await getDingtalkConfig()
console.log('[钉钉初始化] 配置响应:', response)
if (response.code === 200 && response.data) { if (response.code === 200 && response.data) {
dingtalkConfig.enabled = response.data.enabled dingtalkConfig.enabled = response.data.enabled
dingtalkConfig.corp_id = response.data.corp_id dingtalkConfig.corp_id = response.data.corp_id
dingtalkConfig.agent_id = response.data.agent_id dingtalkConfig.agent_id = response.data.agent_id
console.log('[钉钉初始化] 配置已加载:', { enabled: dingtalkConfig.enabled, corp_id: dingtalkConfig.corp_id })
} }
// 检测钉钉环境 // 检测钉钉环境
isDingtalk.value = isDingtalkEnv() isDingtalk.value = isDingtalkEnv()
console.log('[钉钉初始化] 环境检测结果:', isDingtalk.value)
if (window.dd) {
console.log('[钉钉初始化] dd.env.platform:', window.dd.env?.platform)
}
// 如果在钉钉环境中且钉钉登录已启用,自动触发登录 // 如果在钉钉环境中且钉钉登录已启用,自动触发登录
if (isDingtalk.value && dingtalkConfig.enabled && dingtalkConfig.corp_id) { if (isDingtalk.value && dingtalkConfig.enabled && dingtalkConfig.corp_id) {
console.log('[钉钉初始化] 条件满足,触发自动登录')
autoDingtalkLogin() autoDingtalkLogin()
} else {
console.log('[钉钉初始化] 条件不满足,不触发自动登录:', {
isDingtalk: isDingtalk.value,
enabled: dingtalkConfig.enabled,
corp_id: dingtalkConfig.corp_id
})
} }
} catch (error) { } catch (error) {
console.error('初始化钉钉登录失败:', error) console.error('[钉钉初始化] 初始化失败:', error)
} }
} }
// 页面加载时初始化 // 页面加载时初始化
onMounted(async () => { onMounted(async () => {
console.log('[登录页] 页面加载,开始初始化')
console.log('[登录页] 初始 window.dd:', !!window.dd)
// 尝试加载钉钉SDK // 尝试加载钉钉SDK
try { try {
await loadDingtalkSDK() await loadDingtalkSDK()
console.log('[登录页] SDK加载完成window.dd:', !!window.dd)
} catch (e) { } catch (e) {
console.log('钉钉SDK加载跳过(非必须)') console.log('[登录页] 钉钉SDK加载跳过:', e)
} }
// 初始化钉钉登录 // 初始化钉钉登录
initDingtalkLogin() await initDingtalkLogin()
}) })
</script> </script>