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 {
if (typeof window === 'undefined') return false
if (!window.dd) return false
return window.dd.env.platform !== 'notInDingTalk'
if (typeof window === 'undefined') {
console.log('[钉钉检测] window 不存在')
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 () => {
try {
console.log('[钉钉初始化] 开始初始化...')
console.log('[钉钉初始化] window.dd 存在:', !!window.dd)
console.log('[钉钉初始化] User-Agent:', navigator.userAgent)
// 获取钉钉配置
const response = await getDingtalkConfig()
console.log('[钉钉初始化] 配置响应:', response)
if (response.code === 200 && response.data) {
dingtalkConfig.enabled = response.data.enabled
dingtalkConfig.corp_id = response.data.corp_id
dingtalkConfig.agent_id = response.data.agent_id
console.log('[钉钉初始化] 配置已加载:', { enabled: dingtalkConfig.enabled, corp_id: dingtalkConfig.corp_id })
}
// 检测钉钉环境
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) {
console.log('[钉钉初始化] 条件满足,触发自动登录')
autoDingtalkLogin()
} else {
console.log('[钉钉初始化] 条件不满足,不触发自动登录:', {
isDingtalk: isDingtalk.value,
enabled: dingtalkConfig.enabled,
corp_id: dingtalkConfig.corp_id
})
}
} catch (error) {
console.error('初始化钉钉登录失败:', error)
console.error('[钉钉初始化] 初始化失败:', error)
}
}
// 页面加载时初始化
onMounted(async () => {
console.log('[登录页] 页面加载,开始初始化')
console.log('[登录页] 初始 window.dd:', !!window.dd)
// 尝试加载钉钉SDK
try {
await loadDingtalkSDK()
console.log('[登录页] SDK加载完成window.dd:', !!window.dd)
} catch (e) {
console.log('钉钉SDK加载跳过(非必须)')
console.log('[登录页] 钉钉SDK加载跳过:', e)
}
// 初始化钉钉登录
initDingtalkLogin()
await initDingtalkLogin()
})
</script>