- Forum compose/save/draft: VIP prices, partial hide, coupons + shortcode tools - Rainbow clogin aggregate login (rewrite + schema + CLoginClient) - Native ban appeals tab: approve/reject + lift ban + notify - WidgetPostsNavs + register missing forum widgets - Submit editor shortcodes: login/reply/vip/payshow
212 lines
12 KiB
JavaScript
212 lines
12 KiB
JavaScript
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: 'input', default: '' },
|
|
{ key: 'alipay_publickey', label: '支付宝公钥', type: 'input', default: '' },
|
|
],
|
|
},
|
|
],
|
|
}
|