zhb 3 هفته پیش
والد
کامیت
ee228dd5de
2فایلهای تغییر یافته به همراه46 افزوده شده و 1 حذف شده
  1. 19 1
      App.vue
  2. 27 0
      pages/login/index.vue

+ 19 - 1
App.vue

@@ -128,13 +128,31 @@ const parseUrlParams = () => {
 	return params
 }
 
-// 处理 signup 路径(仅 H5 端)
+// 处理 signup 和 signin 路径(仅 H5 端)
 const handleSignupRoute = (options) => {
 	// #ifdef H5
 	// 解析 URL 参数(从浏览器 URL 解析)
 	const query = parseUrlParams()
 	console.log('解析到的参数:', query);
 
+	// 处理 signin 路径(自动登录)
+	if (query.path === 'signin' && query.sysLoginToken) {
+		// 跳转到登录页面并携带 token 参数
+		const loginUrl = `/pages/login/index?sysLoginToken=${encodeURIComponent(query.sysLoginToken)}`
+		console.log('跳转到登录页面:', loginUrl);
+
+		uni.reLaunch({
+			url: loginUrl,
+			success: () => {
+				console.log('跳转成功');
+			},
+			fail: (err) => {
+				console.error('跳转失败:', err);
+			}
+		})
+		return
+	}
+
 	// 判断是否是 signup 路径
 	const isSignup = query.path === 'signup' || query.s || query.signup || query.activeTab === '2'
 

+ 27 - 0
pages/login/index.vue

@@ -453,6 +453,12 @@ const limitAgentIdLength = (val) => {
 
 onLoad((options) => {
   if (options) {
+    // 处理 sysLoginToken 参数,自动登录
+    if (options.sysLoginToken) {
+      handleTokenLogin(options.sysLoginToken)
+      return
+    }
+
     // 处理 activeTab 参数,跳转到注册页面
     if (options.activeTab === '2' || options.tab === '2') {
       activeTab.value = 2
@@ -495,6 +501,27 @@ onLoad((options) => {
   }
 })
 
+// 处理 token 自动登录
+const handleTokenLogin = async (token) => {
+  try {
+    console.log('自动登录,token:', token);
+    
+    // 存储 token
+    userToken.value = token
+    
+    // 获取用户信息并跳转
+    await getCustomLoginInfo()
+    
+    // 获取拒绝原因列表
+    reasonsRefusalList()
+    
+    console.log('自动登录成功');
+  } catch (error) {
+    console.error('自动登录失败:', error);
+    // 登录失败不做任何操作,停留在登录页面
+  }
+}
+
 const ho = ref('')
 
 // 国家列表