浏览代码

fix:优化token一建登录

“HeShaoZe” 4 月之前
父节点
当前提交
be5c27e5fc
共有 2 个文件被更改,包括 105 次插入104 次删除
  1. 95 103
      assets/config/ios_quick_login_config.json
  2. 10 1
      lib/sdk/quicklogin/quick_login_helper.dart

+ 95 - 103
assets/config/ios_quick_login_config.json

@@ -1,108 +1,100 @@
 {
-  "configVersion": "2.0",
-  "nav": {
-    "hidden": false,
-    "backgroundColor": "#FFFFFF",
-    "title": {
-      "text": "本机号码一键登录",
-      "color": "#333333",
-      "fontSize": 18,
-      "fontWeight": "normal"
-    },
-    "leftBtn": {
-      "normalImage": "yd_close_black",
-      "highlightImage": "yd_close_black",
-      "width": 22,
-      "height": 22,
-      "marginLeft": 15
-    }
-  },
-  "logo": {
-    "hidden": false,
-    "image": "yd_logo.png",
-    "width": 60,
-    "height": 60,
-    "marginTop": 30,
-    "marginBottom": 20
-  },
-  "number": {
-    "hidden": false,
-    "text": "正在获取手机号...",
-    "color": "#333333",
-    "fontSize": 24,
-    "marginBottom": 40
-  },
-  "slogan": {
-    "hidden": false,
-    "text": "本机号码一键登录",
-    "color": "#999999",
-    "fontSize": 14,
-    "marginBottom": 40
-  },
-  "loginBtn": {
-    "hidden": false,
-    "normalText": "同意协议并登录",
-    "highlightText": "同意协议并登录",
-    "textColor": "#FFFFFF",
-    "normalBackgroundColor": "#007AFF",
-    "highlightBackgroundColor": "#0066CC",
-    "cornerRadius": 25,
-    "height": 50,
-    "marginLeft": 30,
-    "marginRight": 30,
-    "marginBottom": 20
-  },
-  "privacy": {
-    "hidden": false,
-    "text": "登录即表示同意",
-    "color": "#999999",
-    "fontSize": 12,
-    "textAlign": "center",
-    "marginLeft": 30,
-    "marginRight": 30,
-    "marginBottom": 30,
-    "appPrivacy": {
-      "text": "《用户协议》",
-      "color": "#007AFF",
-      "url": "https://doc.v8dashen.com/doc/546b8b5175a1b4db"
-    },
-    "appPrivacy2": {
-      "text": "《隐私政策》",
-      "color": "#007AFF",
-      "url": "https://doc.v8dashen.com/doc/bad49f15215daa70"
-    },
-    "thirdPrivacy": [
-      {
-        "text": "《易盾隐私政策》",
-        "color": "#007AFF",
-        "url": "https://dun.163.com/privacy"
-      }
-    ]
-  },
-  "otherLoginType": {
-    "hidden": true,
-    "text": "其他方式登录",
-    "color": "#999999",
-    "fontSize": 14,
-    "marginBottom": 30
-  },
-  "background": {
-    "type": "color",
-    "color": "#FFFFFF"
-  },
+  "backgroundColor": "#ffffff",
+  "authWindowPop": 0,
+  "faceOrientation": 0,
+  "bgImage": "quick_login_bg",
+  "contentMode": 0,
+  "modalTransitionStyle": 2,
+
+  "navBarHidden": false,
+  "navBgColor": "#ffffff",
+  "navText": "",
+  "navTextFont": 14,
+  "navTextColor": "#ffffff",
+  "navTextHidden": false,
+  "navReturnImg": "navigation_back",
+  "navReturnImgLeftMargin": 15,
+  "navReturnImgBottomMargin": 0,
+  "navReturnImgWidth": 44,
+  "navReturnImgHeight": 44,
+  
+  "logoIconName": "icon_logo",
+  "logoWidth": 80,
+  "logoHeight": 80,
+  "logoOffsetTopY": 50,
+  "logoOffsetX": 0,
+  "logoHidden": false,
+
+  "numberColor": "#202020",
+  "numberFont": 18,
+  "numberOffsetTopY": 160,
+  "numberOffsetX": 0,
+  "numberHeight": 27,
+
+  "brandColor": "#8F8F8F",
+  "brandFont": 12,
+  "brandWidth": 200,
+  "brandHeight": 16,
+  "brandOffsetX": 0,
+  "brandOffsetTopY": 200,
+  "brandHidden": false,
+
+  "logBtnText": "本机号码一键登录",
+  "loginBtnTextSize": 18,
+  "logBtnTextColor": "#ffffff",
+  "logBtnOffsetTopY": 260,
+  "logBtnRadius": 8,
+  "logBtnUsableBGColor": "#7B7DFF",
+  "logBtnOriginLeft": 24,
+  "logBtnOriginRight": 24,
+  "logBtnHeight": 56,
+
+  "unCheckedImageName": "icon_login_check_box_unchecked",
+  "checkedImageName": "icon_login_check_box_checked",
+  "checkboxWH": 22,
+  "privacyState": false,
+  "checkBoxAlignment": 0,
+  "checkedSelected": false,
+  "checkBoxMargin": 5,
+  "appPrivacyOriginBottomMargin": 40,
+  "privacyNavReturnImg": "navigation_back",
+  "appPrivacyText": "已阅读并同意《用户协议》、《隐私政策》和《默认》",
+  "appFPrivacyText": "《用户协议》",
+  "appFPrivacyURL": "http://cdn.atmob.com/static/museai-xm-clause.html",
+  "appSPrivacyText": "《隐私政策》",
+  "appSPrivacyURL": "http://cdn.atmob.com/static/museai-xm-clause.html",
+  "shouldHiddenPrivacyMarks": false,
+  "privacyColor": "#202020",
+  "privacyFont": 13,
+  "protocolColor": "#7B7DFF",
+  "appPrivacyLineSpacing": 1,
+  "appPrivacyWordSpacing": 0,
+  "progressColor": "#202020",
+  "showPrivacyDialog": 1,
+
+  "popBackgroundColor": "#D9D9D9",
+  "authWindowWidth": 300,
+  "authWindowHeight": 335,
+  "closePopImg": "navigation_back",
+  "closePopImgWidth": 20,
+  "closePopImgHeight": 20,
+  "closePopImgOriginY": 10,
+  "closePopImgOriginX": 10,
+  "authWindowCenterOriginY": 10,
+  "authWindowCenterOriginX": 10,
+  "popCenterCornerRadius": 16,
+  "popBottomCornerRadius": 16,
+  "isOpenSwipeGesture": false,
+
   "widgets": [
     {
-      "width": 150,
-      "height": 30,
-      "viewId": "code_login",
-      "type": "TextView",
-      "top": 310,
-      "font": 15,
-      "text": "验证码登录",
-      "textColor": "#202020",
-      "isGravityCenter": true,
-      "clickable": true,
-      "action": "code_login"
+      "type": "UIButton",
+      "title": "验证码登录",
+      "titleColor": "#202020",
+      "titleFont": 15,
+      "cornerRadius": 20,
+      "action": "code_login",
+      "frame": {"mainScreenLeftDistance":80,"mainScreenRightDistance":80,"mainScreenTopDistance":340,"height":30}
     }
   ]
-}
+}

+ 10 - 1
lib/sdk/quicklogin/quick_login_helper.dart

@@ -23,6 +23,9 @@ class QuickLoginHelper {
 
   static Map<String, dynamic>? _configMap;
 
+  // 新增静态变量存储 preFetchNumber 获取的 ydToken
+  static String? _storedYdToken;
+
   static Future<void> init() {
     return quickLoginPlugin.init(_businessId).then((map) {
       bool result = map?['success'];
@@ -55,6 +58,8 @@ class QuickLoginHelper {
     });
   }
 
+  // 在初始化方法中添加测试代码(如 initState 或单独的测试按钮
+
   static void preFetchNumber({
     required void Function(String token) onSuccess,
     required void Function(String? errorMsg) onError,
@@ -62,11 +67,15 @@ class QuickLoginHelper {
     Map<dynamic, dynamic>? map = await quickLoginPlugin.preFetchNumber();
     if (map?['success'] == true) {
       var ydToken = map?['token'];
+      // 存储 ydToken 到静态变量
+      _storedYdToken = ydToken;
       AtmobLog.d(tag, 'preFetchNumber success token:$ydToken');
       onSuccess(ydToken);
     } else {
       //获取预设手机号失败
       var ydToken = map?['token'];
+      // 失败时清空存储的 token
+      _storedYdToken = ydToken;
       var errorMsg = map?['errorMsg'];
       AtmobLog.e(tag, "preFetchNumber error token:$ydToken,errorMsg:$errorMsg");
       onError(errorMsg);
@@ -82,7 +91,7 @@ class QuickLoginHelper {
       Map<dynamic, dynamic>? map = await quickLoginPlugin.onePassLogin();
       if (map?["success"]) {
         var accessToken = map?["accessToken"];
-        var ydToken = map?["ydToken"];
+        var ydToken = map?["ydToken"] ?? _storedYdToken;
         AtmobLog.d(tag,
             "onePassLogin success ydToken:$ydToken, accessToken:$accessToken");
         onSuccess(ydToken, accessToken);