export const oauthSchema = { key: 'users.oauth', title: '第三方登录', icon: 'fas fa-share-alt', description: 'GitHub、Gitee、QQ、Google 等第三方登录配置。', defaults: { oauth_s: false, oauth_proxy_mode: 'close', oauth_proxy_secret: '', oauth_proxy_server_url: '', oauth_proxy_server_providers: ['github', 'gitee', 'qq', 'google'], oauth_proxy_client_providers: ['github', 'gitee', 'qq', 'google'], oauth_proxy_gzh_type: 'service', oauth_bind_type: 'auto', oauth_button_lg: false, weixingzh_priority: false, weixingzh_auto: false, weixingzh_auto_expires: 3600, oauth_github_s: false, oauth_gitee_s: false, oauth_qq_s: false, oauth_weixingzh_s: false, oauth_weixin_s: false, oauth_weibo_s: false, oauth_baidu_s: false, oauth_alipay_s: false, clogin_s: false, clogin_url: '', clogin_id: '', clogin_key: '', clogin_oauth_s: ['qq', 'weixin', 'weibo', 'alipay'], github_appid: '', github_appkey: '', gitee_appid: '', gitee_appkey: '', qq_appid: '', qq_appkey: '', weixin_appid: '', weixin_appsecret: '', weixingzh_gzh_type: 'service', weixingzh_token: '', weixingzh_token_nocheck: false, weixingzh_encoding_aes_key: '', weixingzh_appid: '', weixingzh_appsecret: '', weixingzh_code_qrcode: '', weixingzh_code_keyword: '登录', weixingzh_code_reply: '您的验证码是:%s,有效期 %d 分钟。', weixingzh_code_subscribe_reply: '欢迎关注!回复「%s」获取登录验证码。', weixingzh_subscribe_msg: '', weixingzh_new_subscribe_msg: '', weixingzh_scan_msg: '', weixingzh_auto_reply_text: '', weixingzh_auto_reply_search: '', weixingzh_auto_reply_image: '', weixingzh_auto_reply_voice: '', weixingzh_auto_reply_default: '暂不支持此类型的消息', weixingzh_gzh_menu: '', weibo_appid: '', weibo_appkey: '', baidu_appid: '', baidu_appkey: '', alipay_appid: '', alipay_privatekey: '', alipay_publickey: '', }, groups: [ { key: 'basic', title: '基础设置', icon: 'fas fa-cog', fields: [ { key: 'oauth_s', label: '启用第三方登录', type: 'switch', default: false }, { key: 'oauth_proxy_mode', label: '代理登录模式', type: 'radio', default: 'close', options: [{ label: '关闭', value: 'close' }, { label: '服务端', value: 'server' }, { label: '客户端', value: 'client' }] }, { key: 'oauth_proxy_secret', label: '代理 HMAC 密钥', type: 'input', default: '', dependsOn: { key: 'oauth_proxy_mode', not: 'close' } }, { key: 'oauth_proxy_server_url', label: '服务端地址', type: 'input', default: '', dependsOn: { key: 'oauth_proxy_mode', value: 'client' } }, { key: 'oauth_proxy_server_providers', label: '服务端允许平台', type: 'checkbox', default: ['github', 'gitee', 'qq', 'google'], options: [{ label: 'GitHub', value: 'github' }, { label: 'Gitee', value: 'gitee' }, { label: 'QQ', value: 'qq' }, { label: 'Google', value: 'google' }, { label: '微博', value: 'weibo' }, { label: '微信', value: 'weixin' }, { label: '百度', value: 'baidu' }, { label: '支付宝', value: 'alipay' }], dependsOn: { key: 'oauth_proxy_mode', value: 'server' } }, { key: 'oauth_proxy_client_providers', label: '客户端启用平台', type: 'checkbox', default: ['github', 'gitee', 'qq', 'google'], options: [{ label: 'GitHub', value: 'github' }, { label: 'Gitee', value: 'gitee' }, { label: 'QQ', value: 'qq' }, { label: 'Google', value: 'google' }, { label: '微博', value: 'weibo' }, { label: '微信', value: 'weixin' }, { label: '百度', value: 'baidu' }, { label: '支付宝', value: 'alipay' }], dependsOn: { key: 'oauth_proxy_mode', value: 'client' } }, { key: 'oauth_proxy_gzh_type', label: '代理公众号类型', type: 'radio', default: 'service', options: [{ label: '服务号', value: 'service' }, { label: '订阅号', value: 'subscribe' }], dependsOn: { key: 'oauth_proxy_mode', not: 'close' } }, { key: 'oauth_bind_type', label: '绑定方式', type: 'radio', default: 'auto', options: [{ label: '自动绑定', value: 'auto' }, { label: '手动绑定', value: 'manual' }] }, { key: 'oauth_button_lg', label: '大按钮样式', type: 'switch', default: false }, { key: 'weixingzh_priority', label: 'PC端优先微信扫码', type: 'switch', default: false, help: '开启后 PC 端登录框优先显示微信公众号扫码' }, { key: 'weixingzh_auto', label: '微信APP内自动登录', type: 'switch', default: false, help: '在微信内置浏览器中自动使用公众号授权登录' }, { key: 'weixingzh_auto_expires', label: '自动登录频率限制 (秒)', type: 'number', default: 3600, min: 0, max: 86400, dependsOn: { key: 'weixingzh_auto', value: true } }, ], }, { key: 'providers', title: '登录提供商', icon: 'fas fa-th', fields: [ { key: 'oauth_github_s', label: 'GitHub登录', type: 'switch', default: false }, { key: 'oauth_gitee_s', label: 'Gitee登录', type: 'switch', default: false }, { key: 'oauth_qq_s', label: 'QQ登录', type: 'switch', default: false }, { key: 'oauth_weixingzh_s', label: '微信公众号登录', type: 'switch', default: false }, { key: 'oauth_weixin_s', label: '微信开放平台登录', type: 'switch', default: false }, { key: 'oauth_weibo_s', label: '微博登录', type: 'switch', default: false }, { key: 'oauth_baidu_s', label: '百度登录', type: 'switch', default: false }, { key: 'oauth_alipay_s', label: '支付宝登录', type: 'switch', default: false }, { key: 'clogin_s', label: '彩虹聚合登录', type: 'switch', default: false, help: '通过第三方聚合登录平台统一接入 QQ/微信/微博/支付宝等' }, ], }, { key: 'github', title: 'GitHub配置', icon: 'fab fa-github', fields: [ { key: 'github_appid', label: 'Client ID', type: 'input', default: '' }, { key: 'github_appkey', label: 'Client Secret', type: 'input', default: '' }, ], }, { key: 'gitee', title: 'Gitee配置', icon: 'fas fa-code-branch', fields: [ { key: 'gitee_appid', label: 'Client ID', type: 'input', default: '' }, { key: 'gitee_appkey', label: 'Client Secret', type: 'input', default: '' }, ], }, { key: 'qq', title: 'QQ配置', icon: 'fab fa-qq', fields: [ { key: 'qq_appid', label: 'App ID', type: 'input', default: '' }, { key: 'qq_appkey', label: 'App Key', type: 'input', default: '' }, ], }, { key: 'weixin', title: '微信开放平台配置', icon: 'fab fa-weixin', fields: [ { key: 'weixin_appid', label: 'AppID', type: 'input', default: '' }, { key: 'weixin_appsecret', label: 'AppSecret', type: 'input', default: '' }, ], }, { key: 'weixingzh', title: '微信公众号配置', icon: 'fab fa-weixin', fields: [ { key: 'weixingzh_gzh_type', label: '公众号类型', type: 'radio', default: 'service', options: [{ label: '服务号', value: 'service' }, { label: '订阅号', value: 'subscribe' }] }, { key: 'weixingzh_token', label: 'Token', type: 'input', default: '' }, { key: 'weixingzh_token_nocheck', label: '不验证Token', type: 'switch', default: false, help: '开发调试时可跳过 Token 验证' }, { key: 'weixingzh_encoding_aes_key', label: 'EncodingAESKey', type: 'input', default: '' }, { key: 'weixingzh_appid', label: 'AppID', type: 'input', default: '' }, { key: 'weixingzh_appsecret', label: 'AppSecret', type: 'input', default: '' }, { key: 'weixingzh_code_qrcode', label: '公众号二维码', type: 'media', default: '', help: '引导用户扫码关注登录的二维码图片' }, { key: 'weixingzh_code_keyword', label: '登录回复关键词', type: 'input', default: '登录', help: '用户在公众号内回复此关键词触发登录验证码' }, { key: 'weixingzh_code_reply', label: '验证码回复模板', type: 'textarea', default: '您的验证码是:%s,有效期 %d 分钟。', help: '%s=验证码,%d=有效分钟数' }, { key: 'weixingzh_code_subscribe_reply', label: '新关注回复模板', type: 'textarea', default: '欢迎关注!回复「%s」获取登录验证码。', help: '%s=登录关键词' }, { key: 'weixingzh_subscribe_msg', label: '关注后回复', type: 'textarea', default: '', help: '用户关注公众号后的自动回复文案' }, { key: 'weixingzh_new_subscribe_msg', label: '新用户关注回复', type: 'textarea', default: '', help: '首次关注用户的专属回复文案,留空使用通用回复' }, { key: 'weixingzh_scan_msg', label: '扫码回复', type: 'textarea', default: '', help: '用户扫码关注公众号后的回复文案' }, { key: 'weixingzh_auto_reply_text', label: '文本自动回复', type: 'textarea', default: '', help: '收到文本消息的自动回复' }, { key: 'weixingzh_auto_reply_search', label: '搜索回复', type: 'textarea', default: '', help: '未匹配关键词时的搜索提示回复' }, { key: 'weixingzh_auto_reply_image', label: '图片回复', type: 'textarea', default: '', help: '收到图片消息的自动回复' }, { key: 'weixingzh_auto_reply_voice', label: '语音回复', type: 'textarea', default: '', help: '收到语音消息的自动回复' }, { key: 'weixingzh_auto_reply_default', label: '默认回复', type: 'textarea', default: '暂不支持此类型的消息', help: '其他未匹配消息类型的兜底回复' }, { key: 'weixingzh_gzh_menu', label: '自定义菜单 JSON', type: 'textarea', default: '', help: '微信公众号自定义菜单 JSON 配置,留空不创建菜单' }, ], }, { key: 'weibo', title: '微博配置', icon: 'fab fa-weibo', fields: [ { key: 'weibo_appid', label: 'App Key', type: 'input', default: '' }, { key: 'weibo_appkey', label: 'App Secret', type: 'input', default: '' }, ], }, { key: 'baidu', title: '百度配置', icon: 'fas fa-paw', fields: [ { key: 'baidu_appid', label: 'API Key', type: 'input', default: '' }, { key: 'baidu_appkey', label: 'Secret Key', type: 'input', default: '' }, ], }, { key: 'clogin', title: '彩虹聚合登录', icon: 'fas fa-cloud', fields: [ { key: 'clogin_url', label: '接口地址', type: 'input', default: '', help: '如 https://xxx.com 不要带 connect.php', dependsOn: { key: 'clogin_s', value: true } }, { key: 'clogin_id', label: 'AppID', type: 'input', default: '', dependsOn: { key: 'clogin_s', value: true } }, { key: 'clogin_key', label: 'AppKey', type: 'input', default: '', dependsOn: { key: 'clogin_s', value: true } }, { key: 'clogin_oauth_s', label: '启用平台', type: 'checkbox', default: ['qq', 'weixin', 'weibo', 'alipay'], options: [ { label: 'QQ', value: 'qq' }, { label: '微信', value: 'weixin' }, { label: '微博', value: 'weibo' }, { label: '支付宝', value: 'alipay' }, { label: '百度', value: 'baidu' }, ], dependsOn: { key: 'clogin_s', value: true } }, ], }, { key: 'alipay', title: '支付宝配置', icon: 'fab fa-alipay', fields: [ { key: 'alipay_appid', label: 'AppID', type: 'input', default: '' }, { key: 'alipay_privatekey', label: '应用私钥', type: 'textarea', rows: 3, default: '' }, { key: 'alipay_publickey', label: '支付宝公钥', type: 'input', default: '' }, ], }, ], }