zhang_li
8 months ago
33 changed files with 447 additions and 67 deletions
@ -1,3 +1,4 @@ |
|||
|
|||
VITE_BASE_URL=http://192.168.0.106:12080/admin-api |
|||
#VITE_BASE_URL=http://dev.ccwin-in.com:25202/api/admin-api |
|||
VITE_BASE_URL_IMAGE=http://localhost:12080/admin-api |
@ -0,0 +1,6 @@ |
|||
## 0.0.3(2022-11-11) |
|||
- 修复 config 方法获取根节点为数组格式配置时错误的转化为了对象的Bug |
|||
## 0.0.2(2021-04-16) |
|||
- 修改插件package信息 |
|||
## 0.0.1(2021-03-15) |
|||
- 初始化项目 |
@ -0,0 +1,81 @@ |
|||
{ |
|||
"id": "uni-config-center", |
|||
"displayName": "uni-config-center", |
|||
"version": "0.0.3", |
|||
"description": "uniCloud 配置中心", |
|||
"keywords": [ |
|||
"配置", |
|||
"配置中心" |
|||
], |
|||
"repository": "", |
|||
"engines": { |
|||
"HBuilderX": "^3.1.0" |
|||
}, |
|||
"dcloudext": { |
|||
"sale": { |
|||
"regular": { |
|||
"price": "0.00" |
|||
}, |
|||
"sourcecode": { |
|||
"price": "0.00" |
|||
} |
|||
}, |
|||
"contact": { |
|||
"qq": "" |
|||
}, |
|||
"declaration": { |
|||
"ads": "无", |
|||
"data": "无", |
|||
"permissions": "无" |
|||
}, |
|||
"npmurl": "", |
|||
"type": "unicloud-template-function" |
|||
}, |
|||
"directories": { |
|||
"example": "../../../scripts/dist" |
|||
}, |
|||
"uni_modules": { |
|||
"dependencies": [], |
|||
"encrypt": [], |
|||
"platforms": { |
|||
"cloud": { |
|||
"tcb": "y", |
|||
"aliyun": "y" |
|||
}, |
|||
"client": { |
|||
"App": { |
|||
"app-vue": "u", |
|||
"app-nvue": "u" |
|||
}, |
|||
"H5-mobile": { |
|||
"Safari": "u", |
|||
"Android Browser": "u", |
|||
"微信浏览器(Android)": "u", |
|||
"QQ浏览器(Android)": "u" |
|||
}, |
|||
"H5-pc": { |
|||
"Chrome": "u", |
|||
"IE": "u", |
|||
"Edge": "u", |
|||
"Firefox": "u", |
|||
"Safari": "u" |
|||
}, |
|||
"小程序": { |
|||
"微信": "u", |
|||
"阿里": "u", |
|||
"百度": "u", |
|||
"字节跳动": "u", |
|||
"QQ": "u" |
|||
}, |
|||
"快应用": { |
|||
"华为": "u", |
|||
"联盟": "u" |
|||
}, |
|||
"Vue": { |
|||
"vue2": "y", |
|||
"vue3": "u" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,93 @@ |
|||
# 为什么使用uni-config-center |
|||
|
|||
实际开发中很多插件需要配置文件才可以正常运行,如果每个插件都单独进行配置的话就会产生下面这样的目录结构 |
|||
|
|||
```bash |
|||
cloudfunctions |
|||
└─────common 公共模块 |
|||
├─plugin-a // 插件A对应的目录 |
|||
│ ├─index.js |
|||
│ ├─config.json // plugin-a对应的配置文件 |
|||
│ └─other-file.cert // plugin-a依赖的其他文件 |
|||
└─plugin-b // plugin-b对应的目录 |
|||
├─index.js |
|||
└─config.json // plugin-b对应的配置文件 |
|||
``` |
|||
|
|||
假设插件作者要发布一个项目模板,里面使用了很多需要配置的插件,无论是作者发布还是用户使用都是一个大麻烦。 |
|||
|
|||
uni-config-center就是用了统一管理这些配置文件的,使用uni-config-center后的目录结构如下 |
|||
|
|||
```bash |
|||
cloudfunctions |
|||
└─────common 公共模块 |
|||
├─plugin-a // 插件A对应的目录 |
|||
│ └─index.js |
|||
├─plugin-b // plugin-b对应的目录 |
|||
│ └─index.js |
|||
└─uni-config-center |
|||
├─index.js // config-center入口文件 |
|||
├─plugin-a |
|||
│ ├─config.json // plugin-a对应的配置文件 |
|||
│ └─other-file.cert // plugin-a依赖的其他文件 |
|||
└─plugin-b |
|||
└─config.json // plugin-b对应的配置文件 |
|||
``` |
|||
|
|||
使用uni-config-center后的优势 |
|||
|
|||
- 配置文件统一管理,分离插件主体和配置信息,更新插件更方便 |
|||
- 支持对config.json设置schema,插件使用者在HBuilderX内编写config.json文件时会有更好的提示(后续HBuilderX会提供支持) |
|||
|
|||
# 用法 |
|||
|
|||
在要使用uni-config-center的公共模块或云函数内引入uni-config-center依赖,请参考:[使用公共模块](https://uniapp.dcloud.net.cn/uniCloud/cf-common) |
|||
|
|||
```js |
|||
const createConfig = require('uni-config-center') |
|||
|
|||
const uniIdConfig = createConfig({ |
|||
pluginId: 'uni-id', // 插件id |
|||
defaultConfig: { // 默认配置 |
|||
tokenExpiresIn: 7200, |
|||
tokenExpiresThreshold: 600, |
|||
}, |
|||
customMerge: function(defaultConfig, userConfig) { // 自定义默认配置和用户配置的合并规则,不设置的情况侠会对默认配置和用户配置进行深度合并 |
|||
// defaudltConfig 默认配置 |
|||
// userConfig 用户配置 |
|||
return Object.assign(defaultConfig, userConfig) |
|||
} |
|||
}) |
|||
|
|||
|
|||
// 以如下配置为例 |
|||
// { |
|||
// "tokenExpiresIn": 7200, |
|||
// "passwordErrorLimit": 6, |
|||
// "bindTokenToDevice": false, |
|||
// "passwordErrorRetryTime": 3600, |
|||
// "app-plus": { |
|||
// "tokenExpiresIn": 2592000 |
|||
// }, |
|||
// "service": { |
|||
// "sms": { |
|||
// "codeExpiresIn": 300 |
|||
// } |
|||
// } |
|||
// } |
|||
|
|||
// 获取配置 |
|||
uniIdConfig.config() // 获取全部配置,注意:uni-config-center内不存在对应插件目录时会返回空对象 |
|||
uniIdConfig.config('tokenExpiresIn') // 指定键值获取配置,返回:7200 |
|||
uniIdConfig.config('service.sms.codeExpiresIn') // 指定键值获取配置,返回:300 |
|||
uniIdConfig.config('tokenExpiresThreshold', 600) // 指定键值获取配置,如果不存在则取传入的默认值,返回:600 |
|||
|
|||
// 获取文件绝对路径 |
|||
uniIdConfig.resolve('custom-token.js') // 获取uni-config-center/uni-id/custom-token.js文件的路径 |
|||
|
|||
// 引用文件(require) |
|||
uniIDConfig.requireFile('custom-token.js') // 使用require方式引用uni-config-center/uni-id/custom-token.js文件。文件不存在时返回undefined,文件内有其他错误导致require失败时会抛出错误。 |
|||
|
|||
// 判断是否包含某文件 |
|||
uniIDConfig.hasFile('custom-token.js') // 配置目录是否包含某文件,true: 文件存在,false: 文件不存在 |
|||
``` |
File diff suppressed because one or more lines are too long
@ -0,0 +1,9 @@ |
|||
{ |
|||
"name": "uni-config-center", |
|||
"version": "0.0.3", |
|||
"description": "配置中心", |
|||
"main": "index.js", |
|||
"keywords": [], |
|||
"author": "DCloud", |
|||
"license": "Apache-2.0" |
|||
} |
@ -0,0 +1,32 @@ |
|||
## 1.0.16(2023-04-25) |
|||
- 新增maxTokenLength配置,用于限制数据库用户记录token数组的最大长度 |
|||
## 1.0.15(2023-04-06) |
|||
- 修复部分语言国际化出错的Bug |
|||
## 1.0.14(2023-03-07) |
|||
- 修复 admin用户包含其他角色时未包含在token的Bug |
|||
## 1.0.13(2022-07-21) |
|||
- 修复 创建token时未传角色权限信息生成的token不正确的bug |
|||
## 1.0.12(2022-07-15) |
|||
- 提升与旧版本uni-id的兼容性(补充读取配置文件时回退平台app-plus、h5),但是仍推荐使用新平台名进行配置(app、web) |
|||
## 1.0.11(2022-07-14) |
|||
- 修复 部分情况下报`read property 'reduce' of undefined`的错误 |
|||
## 1.0.10(2022-07-11) |
|||
- 将token存储在用户表的token字段内,与旧版本uni-id保持一致 |
|||
## 1.0.9(2022-07-01) |
|||
- checkToken兼容token内未缓存角色权限的情况,此时将查库获取角色权限 |
|||
## 1.0.8(2022-07-01) |
|||
- 修复clientDB默认依赖时部分情况下获取不到uni-id配置的Bug |
|||
## 1.0.7(2022-06-30) |
|||
- 修复config文件不合法时未抛出具体错误的Bug |
|||
## 1.0.6(2022-06-28) |
|||
- 移除插件内的数据表schema |
|||
## 1.0.5(2022-06-27) |
|||
- 修复使用多应用配置时报`Cannot read property 'appId' of undefined`的Bug |
|||
## 1.0.4(2022-06-27) |
|||
- 修复使用自定义token内容功能报错的Bug [详情](https://ask.dcloud.net.cn/question/147945) |
|||
## 1.0.2(2022-06-23) |
|||
- 对齐旧版本uni-id默认配置 |
|||
## 1.0.1(2022-06-22) |
|||
- 补充对uni-config-center的依赖 |
|||
## 1.0.0(2022-06-21) |
|||
- 提供uni-id token创建、校验、刷新接口,简化旧版uni-id公共模块 |
@ -0,0 +1,84 @@ |
|||
{ |
|||
"id": "uni-id-common", |
|||
"displayName": "uni-id-common", |
|||
"version": "1.0.16", |
|||
"description": "包含uni-id token生成、校验、刷新功能的云函数公共模块", |
|||
"keywords": [ |
|||
"uni-id-common", |
|||
"uniCloud", |
|||
"token", |
|||
"权限" |
|||
], |
|||
"repository": "https://gitcode.net/dcloud/uni-id-common", |
|||
"engines": { |
|||
"HBuilderX": "^3.1.0" |
|||
}, |
|||
"dcloudext": { |
|||
"sale": { |
|||
"regular": { |
|||
"price": "0.00" |
|||
}, |
|||
"sourcecode": { |
|||
"price": "0.00" |
|||
} |
|||
}, |
|||
"contact": { |
|||
"qq": "" |
|||
}, |
|||
"declaration": { |
|||
"ads": "无", |
|||
"data": "无", |
|||
"permissions": "无" |
|||
}, |
|||
"npmurl": "", |
|||
"type": "unicloud-template-function" |
|||
}, |
|||
"uni_modules": { |
|||
"dependencies": ["uni-config-center"], |
|||
"encrypt": [], |
|||
"platforms": { |
|||
"cloud": { |
|||
"tcb": "y", |
|||
"aliyun": "y" |
|||
}, |
|||
"client": { |
|||
"Vue": { |
|||
"vue2": "u", |
|||
"vue3": "u" |
|||
}, |
|||
"App": { |
|||
"app-vue": "u", |
|||
"app-nvue": "u" |
|||
}, |
|||
"H5-mobile": { |
|||
"Safari": "u", |
|||
"Android Browser": "u", |
|||
"微信浏览器(Android)": "u", |
|||
"QQ浏览器(Android)": "u" |
|||
}, |
|||
"H5-pc": { |
|||
"Chrome": "u", |
|||
"IE": "u", |
|||
"Edge": "u", |
|||
"Firefox": "u", |
|||
"Safari": "u" |
|||
}, |
|||
"小程序": { |
|||
"微信": "u", |
|||
"阿里": "u", |
|||
"百度": "u", |
|||
"字节跳动": "u", |
|||
"QQ": "u", |
|||
"钉钉": "u", |
|||
"快手": "u", |
|||
"飞书": "u", |
|||
"京东": "u" |
|||
}, |
|||
"快应用": { |
|||
"华为": "u", |
|||
"联盟": "u" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,3 @@ |
|||
# uni-id-common |
|||
|
|||
文档请参考:[uni-id-common](https://uniapp.dcloud.net.cn/uniCloud/uni-id-common.html) |
File diff suppressed because one or more lines are too long
@ -0,0 +1,16 @@ |
|||
{ |
|||
"name": "uni-id-common", |
|||
"version": "1.0.16", |
|||
"description": "uni-id token生成、校验、刷新", |
|||
"main": "index.js", |
|||
"homepage": "https://uniapp.dcloud.io/uniCloud/uni-id-common.html", |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "git+https://gitee.com/dcloud/uni-id-common.git" |
|||
}, |
|||
"author": "DCloud", |
|||
"license": "Apache-2.0", |
|||
"dependencies": { |
|||
"uni-config-center": "file:../../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center" |
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
'use strict'; |
|||
const uniPush = uniCloud.getPushManager({ |
|||
appId: "__UNI__BD5EF27" |
|||
}) //注意这里需要传入你的应用appId,用于指定接收消息的客户端
|
|||
exports.main = async (event, context) => { |
|||
let obj = JSON.parse(event.body) |
|||
const res = await uniPush.sendMessage({ |
|||
"push_clientid": obj.cids, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000
|
|||
"title": obj.title, // 标题
|
|||
"content": obj.content, // 内容
|
|||
"payload": obj.payload, // 数据
|
|||
"force_notification": true, // 服务端推送 需要加这一句
|
|||
"request_id": obj.request_id //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失
|
|||
}) |
|||
return res //一定要return回去
|
|||
}; |
@ -0,0 +1,7 @@ |
|||
{ |
|||
"name": "pushMessage", |
|||
"dependencies": {}, |
|||
"extensions": { |
|||
"uni-cloud-push": {} |
|||
} |
|||
} |
@ -0,0 +1,12 @@ |
|||
// 本文件用于,使用JQL语法操作项目关联的uniCloud空间的数据库,方便开发调试和远程数据库管理 |
|||
// 编写clientDB的js API(也支持常规js语法,比如var),可以对云数据库进行增删改查操作。不支持uniCloud-db组件写法 |
|||
// 可以全部运行,也可以选中部分代码运行。点击工具栏上的运行按钮或者按下【F5】键运行代码 |
|||
// 如果文档中存在多条JQL语句,只有最后一条语句生效 |
|||
// 如果混写了普通js,最后一条语句需是数据库操作语句 |
|||
// 此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission |
|||
// 不支持clientDB的action |
|||
// 数据库查询有最大返回条数限制,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-database.html#limit |
|||
// 详细JQL语法,请参考:https://uniapp.dcloud.net.cn/uniCloud/jql.html |
|||
|
|||
// 下面示例查询uni-id-users表的所有数据 |
|||
db.collection('uni-id-users').get(); |
Loading…
Reference in new issue