更新记录

1.0.0(2025-05-09)

新版发布。


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.22,Android:不确定,iOS:不确定,HarmonyNext:支持 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

深信服移动端零信任SDK插件接口使用说明

深信服移动端零信任SDK,用户名密码认证,用户名密码+短信认证,启用SPA,短信主认证。

1. 获取插件对象

import * as Sangfor from "@/uni_modules/Lizii-SangforHar";

<script>

    //插件对象
    import * as Sangfor from "@/uni_modules/Lizii-SangforHar";

    export default {
    }

</script>

2. 初始化(必须)

<script>

    export default {

        onLoad() {

            //初始化
            let sdkMode = 1 >> 0;//SDK模式选项, (鸿蒙暂时只能用这个) 该模式表示只是启用vpn代理功能,不启用终端安全沙箱功能(水印,分享隔离,剪切板隔等等安全功能)
            let sdkFlags = (1 << 3) | (1 << 1);//SDK基本配置选项
            let extra = {};//额外配置,补充属性
            Sangfor.initSDK(sdkMode, sdkFlags, extra);
        }
    }

</script>

3. 设置认证回调

//设置认证回调
Sangfor.setAuthResultListener({
    onAuthSuccess: (message) => {
        console.log(message);
    },
    onAuthProcess: (nextAuthType, message) => {
        console.log(nextAuthType);
        console.log(message);
    },
    onAuthFailed: (message) => {
        console.log(message);
    }
});

4. 用户名密码主认证

//用户名密码主认证
let url = "https://10.244.3.23";//服务器地址
let username = "sangfor";//用户名信息
let password = "123";//用户密码
Sangfor.startPasswordAuth(url, username, password);

5. 短信主认证

//短信主认证
let url = "";//请求认证的服务器地址信息
let phoneNumber = "";//手机号码:86-xxxxxxxxxxx@认证域
Sangfor.startPrimarySmsAuth(url, phoneNumber);

6. 处理二次认证-短信认证

//处理二次认证-短信认证
let authType = 2;//认证类型
let smsCode = "xxxx"; // 短信验证码
let authInfo = {
    "svpn_inputsms":smsCode
};//认证信息,直接透传认证信息
Sangfor.doSecondaryAuth(authType, authInfo);

7. 注销接口

//注销接口
Sangfor.logout();

8. 设置注销事件监听回调

//设置注销事件监听回调
Sangfor.registerLogoutListener({
    onLogout: (type, message) => {
        console.log(type);
        console.log(message);
    }
});

9. 免密认证

//免密认证
let ret = Sangfor.startAutoTicket();
if (ret == true) {
    uni.showToast({
        title:"免密成功"
    });
} else {

}

10. 设置SPA安全码

//设置SPA安全码
let spaConfig = "{\"loginAddress\":\"https://10.242.4.232\", \"spaSecret\":\"j7vU-uv2V-GrJu\"}";//SPA种子
Sangfor.setSpaConfig(spaConfig, {
    onSetSpaConfig: (result, error) => {
        console.log(result);
        console.log(error);
    }
});

11. 重新获取验证码

//重新获取验证码
Sangfor.regetSmsCode({
    onRegetSmsCode: (success, message) => {
        console.log(success);
        console.log(message);
    }
});

12. 重新获取图形校验码

//重新获取图形校验码
Sangfor.regetRandCode({
    onRegetRandCode: (success, randcodeImage) => {
        console.log(success);//true: 成功, false: 失败
        console.log(randcodeImage);//图片base64字符串
    }
});

枚举常量

1. SDK模式

/**
 * SDK模式
 */
export const enum SFSDKMode {
    MODE_NONE = 0,          // 没有类型
    MODE_VPN = 1 << 0, // SDK启用VPN接入功能
    MODE_SANDBOX = 1 << 1, // SDK启用安全沙箱功能
    MODE_VPN_SANDBOX = 1 << 0 | 1 << 1, // SDK启动VPN和安全沙箱功能
    MODE_SUPPORT_MUTABLE = 1 << 0 | 1 << 1 | 1 << 2, // SDK启动模式会根据配置变动
}

2. SDK配置选项

/**
 * SDK配置选项
 */
export const enum SFSDKFlags {
    FLAGS_NONE = (1 << 0),                  //初始化值
    FLAGS_VPN_MODE_TCP = (1 << 1),          //设置VPN工作模式为TCP模式
    FLAGS_VPN_MODE_L3VPN = (1 << 2),       //设置VPN工作模式L3VPN模式
    FLAGS_HOST_APPLICATION = (1 << 3),      //设置SDK工作模式为主应用模式
    FLAGS_SUB_APPLICATION = (1 << 4),       //设置SDK工作模式为子应用模式
    FLAGS_ENABLE_FILE_ISOLATION = (1 << 5), //启用文件隔离功能
    FLAGS_SUPPORT_MANAGE_POLICY = (1 << 6), //SDK支持外部(第三方)更新策略
    FLAGS_MAIN_PROCESS = 1 << 10,          //主进程
    FLAGS_PLUGIN_PROCESS = 1 << 11,          //插件进程
    FLAGS_CHILD_PROCESS = 1 << 12,         //子进程
    FLAGS_IS_AWORK = 1 << 13,               //aWork
    FLAGS_ATRUST_SDK = 1 << 14,             //aTrust App标记
    FLAGS_INJECT_SDK = 1 << 15,            // 封装应用,封装应用用到
    FLAGS_VPN_SERVER = 1 << 16,             // 对接vpn服务器
    FLAGS_SDP_SERVER = 1 << 17,             // 对接sdp服务器
    FLAGS_DISABLE_IPV6_RESOLVE = 1 << 19,   // 针对接入服务器的地址不做ipv6解析,
    // 用于处理某些用户ipv6解析无响应导致整体解析慢的问题, 当前仅对SDP生效
    FLAGS_ATRUST_AUTO_TEST = 1 << 20,      //aTrust App自动化标记

    FLAGS_ATRUST_CHANNEL_PROCESS = 1 << 22, //安卓Atrust推送进程,只做网络拦截
}

3. SDK额外配置,补充属性

/**
 * SDK额外配置,补充属性
 */
export const enum SFSDKExtras {
    EXTRA_KEY_FILE_ISOLATION = "kExtraFileIsolation",                // 设置文件加密隔离
    EXTRA_KEY_HOSTAPP_PACKAGE_NAME = "kExtraHostAppPackageName",           // 主应用包名
    EXTRA_KEY_AWORK_CURRENT_VERSION = "kExtraAworkCurrentVersion",          // aWork版本信息
    EXTRA_KEY_INJECT_APPID = "kExtraAppId",                        // 设置封装应用的appId
    EXTRA_KEY_ENABLE_APPSTORE = "kExtraEnableAppStoreKey",            // 启用应用商店
    EXTRA_KEY_ENCAP_TYPE = "KExtraEncapType"                    // 封装类型
}

4. 认证类型

/**
 * 认证类型
 */
export const enum SFAuthType {
    /**
     * 证书认证
     */
    AUTH_TYPE_CERTIFICATE =               (0),
    /**
     * 用户名密码认证
     */
    AUTH_TYPE_PASSWORD =                  (1),
    /**
     * 短信认证
     */
    AUTH_TYPE_SMS =                       (2),
    /**
     * 硬件特征码认证
     */
    AUTH_TYPE_HARDID =                    (4),
    /**
     * 挑战认证或者Radius认证
     */
    AUTH_TYPE_RADIUS=                    (6),
    /**
     * 令牌认证
     */
    AUTH_TYPE_TOKEN=                     (7),
    /**
     * 授权认证
     */
    AUTH_TYPE_AUTHOR=                    (10),
    /**
     * 钉钉code认证
     */
    AUTH_TYPE_DINGDING_CODE=             (11),
    /**
     * Session认证
     */
    AUTH_TYPE_SESSION=                   (16),
    /**
     * 无认证
     */
    AUTH_TYPE_NONE=                      (17),
    /**
     * 强制修改密码认证
     */
    AUTH_TYPE_RENEW_PASSWORD=            (18),
    /**
     * 图形校验码认证
     */
    AUTH_TYPE_RAND=                      (22),
    /**
     * Sdp SangforId
     */
    AUTH_TYPE_SANGFORID=                 (23),
    /**
     * Sdp 企业微信认证
     */
    AUTH_TYPE_QYWECHAT=                  (24),
    /**
     * Totp谷歌令牌认证
     */
    AUTH_TYPE_TOKEN_TOTP=                (25),
    /**
     * radius令牌认证
     */
    AUTH_TYPE_TOKEN_RADIUS=              (26),
    /**
     * https令牌认证
     */
    AUTH_TYPE_TOKEN_HTTPS=               (27),
    /**
     * 认证策略检查-内部认证
     */
    AUTH_TYPE_AUTH_CHECK=                (28),
    /**
     * 上线后纯净bindAuthDevice,仅接口调用,无需参数
     */
    AUTH_TYPE_PURE_BIND_AUTH_DEVICE=     (29),
    /**
     * 上线前申请绑定授信终端认证, 提供申请理由
     */
    AUTH_TYPE_APPLY_BIND_AUTH_DEVICE=    (30),
    /**
     * 上线前授信终端解绑认证, 需要先解绑其它终端才能继续认证
     */
    AUTH_TYPE_UNBIND_AUTH_DEVICE=        (31),
    /**
     * 上线后纯净trustDevice接口, 仅接口调用,无需参数
     */
    AUTH_TYPE_PURE_TRUST_DEVICE=         (32),
    /**
     * 上线后申请绑定授信终端认证, 提供申请理由
     */
    AUTH_TYPE_APPLY_TRUST_DEVICE=        (33),
    /**
     * 上线后授信终端解绑认证, 需要先解绑其它终端才能继续认证
     */
    AUTH_TYPE_UNBIND_TRUST_DEVICE=       (34),
    /**
     * 增强认证预认证
     */
    AUTH_TYPE_PRE_ENHANCED=              (35),
    /**
     * 找回密码,先获取验证码
     */
    AUTH_TYPE_FORGET_PWD_PRE=            (36),
    /**
     * 找回密码
     */
    AUTH_TYPE_FORGET_PWD=                (37),
    /**
     * 重置密码
     */
    AUTH_TYPE_RESET_PWD=                 (38),
    /**
     * cas认证
     */
    AUTH_TYPE_CAS=                       (39),

    AUTH_TYPE_CAS_PRE=                   (40),        // cas认证预处理, 需要调用该认证来进行

    /* 短信主认证begin */
    AUTH_TYPE_PRIMARY_SMS_PRE=           (41),        //短信主认证之前要预认证,用来发送短信
    AUTH_TYPE_PRIMARY_SMS=               (42),        //短信主认证
    AUTH_TYPE_THIRD_CODE=                (43),        //第三方认证
    /* 短信主认证end*/

    /**
     * Ticket认证
     */
    AUTH_TYPE_TICKET=                    (1<<11),
    /**
     * 未知认证类型
     */
    AUTH_TYPE_UNKNOWN=                   (-1)
}

5. 注销类型

/**
 * 注销类型
 */
export const enum SFLogoutType {
  SFLogoutTypeUser                = 0,    //用户注销
  SFLogoutTypeTicketAuthError     = 1,    //免密失败
  SFLogoutTypeServerShutdown      = 2,    //服务端shutdown
  SFLogoutTypeAuthorError         = 3,    //授权失败
  SFLogoutTypeOther               = 100,  //其他注销
}

6. KEY常量


public class SFConstants {
    public static final String AUTH_KEY_USERNAME = "svpn_name";
    public static final String AUTH_KEY_PASSWORD = "svpn_password";
    public static final String AUTH_KEY_DINGTALK_USERNAME = "username";
    public static final String AUTH_KEY_DINGTALK_SIGN = "sign";
    public static final String AUTH_KEY_DINGTALK_REQUESTID = "requestID";
    public static final String AUTH_KEY_DINGTALK_TIMESTAMP = "timeStamp";
    public static final String AUTH_KEY_DINGTALK_CUSTOMHEADERS = "customHeaders";
    public static final String AUTH_KEY_SESSION = "svpn_session";
    public static final String AUTH_KEY_CERT_PATH = "svpn_cert_path";
    public static final String AUTH_KEY_CERT_PASSWORD = "svpn_cert_password";
    public static final String AUTH_KEY_PRIMARYSMS_PHONE = "sms_phone";
    public static final String AUTH_KEY_PRIMARYSMS_CODE = "sms_code";
    public static final String AUTH_KEY_AUTH_DEVICE_REASON = "reason";
    public static final String AUTH_KEY_AUTH_DEVICE_UNBIND = "unbindList";
    public static final String AUTH_KEY_AUTH_DEVICE_DATA = "auth_key_auth_device_data";
    public static final String AUTH_KEY_NEXT_AUTH_TYPE = "auth_key_next_auth_type";
    public static final String AUTH_KEY_NEXT_AUTH_MESSAGE = "auth_key_next_auth_message";
    public static final String AUTH_KEY_PRIMARYSMS_AREA = "sms_area";
    public static final String AUTH_KEY_DINGTALK_CODE = "dingtalk_code";
    public static final String AUTH_KEY_RANDCODE = "svpn_rand_code";
    public static final String AUTH_KEY_SMS = "svpn_inputsms";
    public static final String AUTH_KEY_ID = "authId";
    public static final String AUTH_KEY_FORGET_PWD_DOMAIN = "domain";
    public static final String AUTH_KEY_FORGET_PWD_SENDKEY = "sendkey";
    public static final String AUTH_KEY_TOKEN = "svpn_inputtoken";
    public static final String AUTH_KEY_TOTP_TOKEN = "action";
    public static final String AUTH_VAULE_TOTP_TOKEN = "rebind";
    public static final String AUTH_KEY_RADIUS_CODE = "svpn_inputradius";
    public static final String AUTH_KEY_RENEW_OLD_PASSWORD = "pripsw";
    public static final String AUTH_KEY_REWNEW_NEW_PASSWORD = "newpsw";
    public static final String AUTH_KEY_USER_CONTENT_DATA = "kAuthKeyUserContentData";
    public static final String AUTH_KEY_OLD_PASSWORD = "oldPassword";
    public static final String AUTH_KEY_NEW_PASSWORD = "newPassword";
    public static final String AUTH_KEY_REMEMBER_SECOND_AUTH = "rememberSecondAuth";
    public static final String AUTH_KEY_REMEMBER_ENHANCE_AUTH = "rememberEnhanceAuth";
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的深信服移动端零信任SDK采集数据请参考其官方说明:https://bbs.sangfor.com.cn/atrustdeveloper/appsdk/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问