@nocobase/plugin-auth 1.3.46-beta → 1.3.48-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -106
- package/dist/externalVersion.js +8 -8
- package/dist/locale/en-US.json +2 -1
- package/dist/locale/zh-CN.json +2 -1
- package/dist/node_modules/cron/package.json +1 -1
- package/dist/server/actions/auth.d.ts +0 -3
- package/dist/server/actions/auth.js +42 -13
- package/dist/server/basic-auth.d.ts +0 -1
- package/dist/server/basic-auth.js +2 -34
- package/dist/swagger/index.d.ts +0 -157
- package/dist/swagger/index.js +159 -159
- package/package.json +2 -2
- package/dist/server/locale/en-US.d.ts +0 -17
- package/dist/server/locale/en-US.js +0 -39
- package/dist/server/locale/fr-FR.d.ts +0 -17
- package/dist/server/locale/fr-FR.js +0 -39
- package/dist/server/locale/index.d.ts +0 -11
- package/dist/server/locale/index.js +0 -52
- package/dist/server/locale/ja-JP.d.ts +0 -13
- package/dist/server/locale/ja-JP.js +0 -35
- package/dist/server/locale/pt-BR.d.ts +0 -17
- package/dist/server/locale/pt-BR.js +0 -39
- package/dist/server/locale/zh-CN.d.ts +0 -19
- package/dist/server/locale/zh-CN.js +0 -41
package/README.md
CHANGED
|
@@ -1,117 +1,30 @@
|
|
|
1
|
-
#
|
|
1
|
+
# NocoBase
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<video width="100%" controls>
|
|
4
|
+
<source src="https://static-docs.nocobase.com/NocoBase0510.mp4" type="video/mp4">
|
|
5
|
+
</video>
|
|
4
6
|
|
|
5
|
-
## 使用方法
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
页面:系统设置 - 认证
|
|
8
|
+
## What is NocoBase
|
|
9
9
|
|
|
10
|
+
NocoBase is a scalability-first, open-source no-code development platform.
|
|
11
|
+
Instead of investing years of time and millions of dollars in research and development, deploy NocoBase in a few minutes and you'll have a private, controllable, and extremely scalable no-code development platform!
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Homepage:
|
|
14
|
+
https://www.nocobase.com/
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- 认证类型:邮箱密码登录
|
|
16
|
+
Online Demo:
|
|
17
|
+
https://demo.nocobase.com/new
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Documents:
|
|
20
|
+
https://docs.nocobase.com/
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
Commericial license & plugins:
|
|
23
|
+
https://www.nocobase.com/en/commercial
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
License agreement:
|
|
26
|
+
https://www.nocobase.com/en/agreement
|
|
23
27
|
|
|
24
|
-
<img src="https://s2.loli.net/2023/05/15/CR7UTDt2WzbEfgs.png" width="300px" />
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<img src="https://s2.loli.net/2023/05/15/2utpSHly9fzCKX5.png" width="400px" />
|
|
30
|
-
|
|
31
|
-
#### 配置认证器
|
|
32
|
-
Actions - Edit
|
|
33
|
-
|
|
34
|
-
## 开发一个登录插件
|
|
35
|
-
### 接口
|
|
36
|
-
Nocobase内核提供了扩展登录方式的接入和管理。扩展登录插件的核心逻辑处理,需要继承内核的`Auth`类,并对相应的标准接口进行实现。
|
|
37
|
-
参考`core/auth/auth.ts`
|
|
38
|
-
|
|
39
|
-
```TypeScript
|
|
40
|
-
import { Auth } from '@nocobase/auth';
|
|
41
|
-
|
|
42
|
-
class CustomAuth extends Auth {
|
|
43
|
-
set user(user) {}
|
|
44
|
-
get user() {}
|
|
45
|
-
|
|
46
|
-
async check() {}
|
|
47
|
-
async signIn() {}
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
多数情况下,扩展的用户登录方式也将沿用现有的jwt逻辑来生成用户访问API的凭证,插件也可以继承`BaseAuth`类以便复用部分逻辑代码,如`check`, `signIn`接口。
|
|
52
|
-
|
|
53
|
-
```TypeScript
|
|
54
|
-
import { BaseAuth } from '@nocobase/auth';
|
|
55
|
-
|
|
56
|
-
class CustomAuth extends BaseAuth {
|
|
57
|
-
constructor(config: AuthConfig) {
|
|
58
|
-
const userCollection = config.ctx.db.getCollection('users');
|
|
59
|
-
super({ ...config, userCollection });
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async validate() {}
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 用户数据
|
|
67
|
-
|
|
68
|
-
`@nocobase/plugin-auth`插件提供了`usersAuthenticators`表来建立users和authenticators,即用户和认证方式的关联。
|
|
69
|
-
通常情况下,扩展登录方式用`users`和`usersAuthenticators`来存储相应的用户数据即可,特殊情况下才需要自己新增Collection.
|
|
70
|
-
`users`存储的是最基础的用户数据,邮箱、昵称和密码。
|
|
71
|
-
`usersAuthenticators`存储扩展登录方式数据
|
|
72
|
-
- uuid: 该种认证方式的用户唯一标识,如手机号、微信openid等
|
|
73
|
-
- meta: JSON字段,其他需要保存的信息
|
|
74
|
-
- userId: 用户id
|
|
75
|
-
- authenticator:认证器名字
|
|
76
|
-
|
|
77
|
-
对于用户操作,`Authenticator`模型也提供了几个封装的方法,可以在`CustomAuth`类中通过`this.authenticator[方法名]`使用:
|
|
78
|
-
- `findUser(uuid: string): UserModel` - 查询用户
|
|
79
|
-
- `newUser(uuid: string, values?: any): UserModel` - 创建新用户
|
|
80
|
-
- `findOrCreateUser(uuid: string, userValues?: any): UserModel` - 查找或创建新用户
|
|
81
|
-
|
|
82
|
-
### 注册
|
|
83
|
-
扩展的登录方式需要向内核注册。
|
|
84
|
-
```TypeScript
|
|
85
|
-
async load() {
|
|
86
|
-
this.app.authManager.registerTypes('custom-auth-type', {
|
|
87
|
-
auth: CustomAuth,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### 客户端API
|
|
93
|
-
#### OptionsComponentProvider
|
|
94
|
-
可供用户配置的认证器配置项
|
|
95
|
-
- authType 认证方式
|
|
96
|
-
- component 配置组件
|
|
97
|
-
```TypeScript
|
|
98
|
-
<OptionsComponentProvider authType="custom-auth-type" component={Options} />
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
`Options`组件使用的值是`authenticator`的`options`字段,如果有需要暴露在前端的配置,应该放在`options.public`字段中。`authenticators:publicList`接口会返回`options.public`字段的值。
|
|
102
|
-
|
|
103
|
-
#### SigninPageProvider
|
|
104
|
-
自定义登录页界面
|
|
105
|
-
- authType 认证方式
|
|
106
|
-
- tabTitle 登录页tab标题
|
|
107
|
-
- component 登录页组件
|
|
108
|
-
|
|
109
|
-
#### SignupPageProvider
|
|
110
|
-
自定义注册页界面
|
|
111
|
-
- authType 认证方式
|
|
112
|
-
- component 注册页组件
|
|
113
|
-
|
|
114
|
-
#### SigninPageExtensionProvider
|
|
115
|
-
自定义登录页下方的扩展内容
|
|
116
|
-
- authType 认证方式
|
|
117
|
-
- component 扩展组件
|
|
29
|
+
## Contact Us:
|
|
30
|
+
hello@nocobase.com
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.3.
|
|
11
|
+
"@nocobase/client": "1.3.48-beta",
|
|
12
12
|
"react": "18.2.0",
|
|
13
|
-
"@nocobase/utils": "1.3.
|
|
14
|
-
"@nocobase/auth": "1.3.
|
|
15
|
-
"@nocobase/database": "1.3.
|
|
16
|
-
"@nocobase/cache": "1.3.
|
|
17
|
-
"@nocobase/server": "1.3.
|
|
18
|
-
"@nocobase/test": "1.3.
|
|
13
|
+
"@nocobase/utils": "1.3.48-beta",
|
|
14
|
+
"@nocobase/auth": "1.3.48-beta",
|
|
15
|
+
"@nocobase/database": "1.3.48-beta",
|
|
16
|
+
"@nocobase/cache": "1.3.48-beta",
|
|
17
|
+
"@nocobase/server": "1.3.48-beta",
|
|
18
|
+
"@nocobase/test": "1.3.48-beta",
|
|
19
19
|
"antd": "5.12.8",
|
|
20
20
|
"@formily/react": "2.3.0",
|
|
21
21
|
"react-router-dom": "6.21.0",
|
|
@@ -23,5 +23,5 @@ module.exports = {
|
|
|
23
23
|
"react-i18next": "11.18.6",
|
|
24
24
|
"@emotion/css": "11.13.0",
|
|
25
25
|
"@ant-design/icons": "5.2.6",
|
|
26
|
-
"@nocobase/actions": "1.3.
|
|
26
|
+
"@nocobase/actions": "1.3.48-beta"
|
|
27
27
|
};
|
package/dist/locale/en-US.json
CHANGED
|
@@ -23,5 +23,6 @@
|
|
|
23
23
|
"No authentication methods available.": "No authentication methods available.",
|
|
24
24
|
"The password is inconsistent, please re-enter": "The password is inconsistent, please re-enter",
|
|
25
25
|
"Sign-in": "Sign-in",
|
|
26
|
-
"Password": "Password"
|
|
26
|
+
"Password": "Password",
|
|
27
|
+
"The username/email or password is incorrect, please re-enter": "The username/email or password is incorrect, please re-enter"
|
|
27
28
|
}
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -23,5 +23,6 @@
|
|
|
23
23
|
"No authentication methods available.": "没有可用的认证方式。",
|
|
24
24
|
"The password is inconsistent, please re-enter": "密码不一致,请重新输入",
|
|
25
25
|
"Sign-in": "登录",
|
|
26
|
-
"Password": "密码"
|
|
26
|
+
"Password": "密码",
|
|
27
|
+
"The username/email or password is incorrect, please re-enter": "用户名/邮箱或密码有误,请重新输入"
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"cron","description":"Cron jobs for your node","version":"2.4.4","author":"Nick Campbell <nicholas.j.campbell@gmail.com> (https://github.com/ncb000gt)","bugs":{"url":"https://github.com/kelektiv/node-cron/issues"},"repository":{"type":"git","url":"https://github.com/kelektiv/node-cron.git"},"main":"lib/cron","scripts":{"lint":"eslint {lib,tests}/*.js","test":"jest --coverage","test:watch":"jest --watch --coverage","test:types":"tsd","prepare":"husky install","release":"semantic-release"},"types":"types/index.d.ts","dependencies":{"@types/luxon":"~3.3.0","luxon":"~3.3.0"},"devDependencies":{"@commitlint/cli":"~17.6.6","@insurgentlab/commitlint-config":"^18.1.0","@insurgentlab/conventional-changelog-preset":"~6.0.3","@semantic-release/changelog":"~6.0.x","@semantic-release/commit-analyzer":"~9.0.x","@semantic-release/git":"~10.0.x","@semantic-release/github":"~8.1.x","@semantic-release/npm":"~10.0.x","@semantic-release/release-notes-generator":"~11.0.x","chai":"~4.2.x","eslint":"~8.36.x","eslint-config-prettier":"^8.7.x","eslint-config-standard":"~17.0.x","eslint-plugin-import":"~2.27.x","eslint-plugin-jest":"~27.2.x","eslint-plugin-n":"~15.6.x","eslint-plugin-prettier":"~4.2.x","eslint-plugin-promise":"~6.1.x","husky":"^8.0.3","jest":"~29.5.x","prettier":"~2.8.x","semantic-release":"~21.0.x","sinon":"^15.0.x","tsd":"^0.28.1"},"keywords":["cron","node cron","node-cron","schedule","scheduler","cronjob","cron job"],"license":"MIT","contributors":["Brandon der Blätter <https://interlucid.com/contact/> (https://github.com/intcreator)","Romain Beauxis <toots@rastageeks.org> (https://github.com/toots)","James Padolsey <> (https://github.com/jamespadolsey)","Finn Herpich <fh@three-heads.de> (https://github.com/ErrorProne)","Clifton Cunningham <clifton.cunningham@gmail.com> (https://github.com/cliftonc)","Eric Abouaf <eric.abouaf@gmail.com> (https://github.com/neyric)","humanchimp <morphcham@gmail.com> (https://github.com/humanchimp)","Craig Condon <craig@spiceapps.com> (https://github.com/spiceapps)","Dan Bear <daniel@hulu.com> (https://github.com/danhbear)","Vadim Baryshev <vadimbaryshev@gmail.com> (https://github.com/baryshev)","Leandro Ferrari <lfthomaz@gmail.com> (https://github.com/lfthomaz)","Gregg Zigler <greggzigler@gmail.com> (https://github.com/greggzigler)","Jordan Abderrachid <jabderrachid@gmail.com> (https://github.com/jordanabderrachid)","Masakazu Matsushita <matsukaz@gmail.com> (matsukaz)","Christopher Lunt <me@kirisu.co.uk> (https://github.com/kirisu)"],"jest":{"collectCoverage":true,"collectCoverageFrom":["lib/*.js"],"coverageThreshold":{"global":{"statements":80,"branches":80,"functions":70,"lines":80}}},"files":["lib","types","CHANGELOG.md","LICENSE","README.md"],"_lastModified":"2024-11-
|
|
1
|
+
{"name":"cron","description":"Cron jobs for your node","version":"2.4.4","author":"Nick Campbell <nicholas.j.campbell@gmail.com> (https://github.com/ncb000gt)","bugs":{"url":"https://github.com/kelektiv/node-cron/issues"},"repository":{"type":"git","url":"https://github.com/kelektiv/node-cron.git"},"main":"lib/cron","scripts":{"lint":"eslint {lib,tests}/*.js","test":"jest --coverage","test:watch":"jest --watch --coverage","test:types":"tsd","prepare":"husky install","release":"semantic-release"},"types":"types/index.d.ts","dependencies":{"@types/luxon":"~3.3.0","luxon":"~3.3.0"},"devDependencies":{"@commitlint/cli":"~17.6.6","@insurgentlab/commitlint-config":"^18.1.0","@insurgentlab/conventional-changelog-preset":"~6.0.3","@semantic-release/changelog":"~6.0.x","@semantic-release/commit-analyzer":"~9.0.x","@semantic-release/git":"~10.0.x","@semantic-release/github":"~8.1.x","@semantic-release/npm":"~10.0.x","@semantic-release/release-notes-generator":"~11.0.x","chai":"~4.2.x","eslint":"~8.36.x","eslint-config-prettier":"^8.7.x","eslint-config-standard":"~17.0.x","eslint-plugin-import":"~2.27.x","eslint-plugin-jest":"~27.2.x","eslint-plugin-n":"~15.6.x","eslint-plugin-prettier":"~4.2.x","eslint-plugin-promise":"~6.1.x","husky":"^8.0.3","jest":"~29.5.x","prettier":"~2.8.x","semantic-release":"~21.0.x","sinon":"^15.0.x","tsd":"^0.28.1"},"keywords":["cron","node cron","node-cron","schedule","scheduler","cronjob","cron job"],"license":"MIT","contributors":["Brandon der Blätter <https://interlucid.com/contact/> (https://github.com/intcreator)","Romain Beauxis <toots@rastageeks.org> (https://github.com/toots)","James Padolsey <> (https://github.com/jamespadolsey)","Finn Herpich <fh@three-heads.de> (https://github.com/ErrorProne)","Clifton Cunningham <clifton.cunningham@gmail.com> (https://github.com/cliftonc)","Eric Abouaf <eric.abouaf@gmail.com> (https://github.com/neyric)","humanchimp <morphcham@gmail.com> (https://github.com/humanchimp)","Craig Condon <craig@spiceapps.com> (https://github.com/spiceapps)","Dan Bear <daniel@hulu.com> (https://github.com/danhbear)","Vadim Baryshev <vadimbaryshev@gmail.com> (https://github.com/baryshev)","Leandro Ferrari <lfthomaz@gmail.com> (https://github.com/lfthomaz)","Gregg Zigler <greggzigler@gmail.com> (https://github.com/greggzigler)","Jordan Abderrachid <jabderrachid@gmail.com> (https://github.com/jordanabderrachid)","Masakazu Matsushita <matsukaz@gmail.com> (matsukaz)","Christopher Lunt <me@kirisu.co.uk> (https://github.com/kirisu)"],"jest":{"collectCoverage":true,"collectCoverageFrom":["lib/*.js"],"coverageThreshold":{"global":{"statements":80,"branches":80,"functions":70,"lines":80}}},"files":["lib","types","CHANGELOG.md","LICENSE","README.md"],"_lastModified":"2024-11-11T02:28:58.634Z"}
|
|
@@ -8,9 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { Context, Next } from '@nocobase/actions';
|
|
10
10
|
declare const _default: {
|
|
11
|
-
lostPassword: (ctx: Context, next: Next) => Promise<void>;
|
|
12
|
-
resetPassword: (ctx: Context, next: Next) => Promise<void>;
|
|
13
|
-
getUserByResetToken: (ctx: Context, next: Next) => Promise<void>;
|
|
14
11
|
changePassword: (ctx: Context, next: Next) => Promise<void>;
|
|
15
12
|
};
|
|
16
13
|
export default _default;
|
|
@@ -29,22 +29,51 @@ __export(auth_exports, {
|
|
|
29
29
|
default: () => auth_default
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(auth_exports);
|
|
32
|
+
var import_preset = require("../../preset");
|
|
32
33
|
/* istanbul ignore file -- @preserve */
|
|
33
34
|
var auth_default = {
|
|
34
|
-
lostPassword: async (ctx, next) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
resetPassword: async (ctx, next) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
getUserByResetToken: async (ctx, next) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
35
|
+
// lostPassword: async (ctx: Context, next: Next) => {
|
|
36
|
+
// ctx.body = await ctx.auth.lostPassword();
|
|
37
|
+
// await next();
|
|
38
|
+
// },
|
|
39
|
+
// resetPassword: async (ctx: Context, next: Next) => {
|
|
40
|
+
// ctx.body = await ctx.auth.resetPassword();
|
|
41
|
+
// await next();
|
|
42
|
+
// },
|
|
43
|
+
// getUserByResetToken: async (ctx: Context, next: Next) => {
|
|
44
|
+
// ctx.body = await ctx.auth.getUserByResetToken();
|
|
45
|
+
// await next();
|
|
46
|
+
// },
|
|
46
47
|
changePassword: async (ctx, next) => {
|
|
47
|
-
|
|
48
|
+
const {
|
|
49
|
+
values: { oldPassword, newPassword, confirmPassword }
|
|
50
|
+
} = ctx.action.params;
|
|
51
|
+
if (newPassword !== confirmPassword) {
|
|
52
|
+
ctx.throw(400, ctx.t("The password is inconsistent, please re-enter", { ns: import_preset.namespace }));
|
|
53
|
+
}
|
|
54
|
+
const currentUser = ctx.auth.user;
|
|
55
|
+
if (!currentUser) {
|
|
56
|
+
ctx.throw(401);
|
|
57
|
+
}
|
|
58
|
+
let key;
|
|
59
|
+
if (currentUser.username) {
|
|
60
|
+
key = "username";
|
|
61
|
+
} else {
|
|
62
|
+
key = "email";
|
|
63
|
+
}
|
|
64
|
+
const user = await ctx.db.getRepository("users").findOne({
|
|
65
|
+
where: {
|
|
66
|
+
[key]: currentUser[key]
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const pwd = ctx.db.getCollection("users").getField("password");
|
|
70
|
+
const isValid = await pwd.verify(oldPassword, user.password);
|
|
71
|
+
if (!isValid) {
|
|
72
|
+
ctx.throw(401, ctx.t("The password is incorrect, please re-enter", { ns: import_preset.namespace }));
|
|
73
|
+
}
|
|
74
|
+
user.password = newPassword;
|
|
75
|
+
await user.save();
|
|
76
|
+
ctx.body = currentUser;
|
|
48
77
|
await next();
|
|
49
78
|
}
|
|
50
79
|
};
|
|
@@ -66,12 +66,12 @@ class BasicAuth extends import_auth.BaseAuth {
|
|
|
66
66
|
filter
|
|
67
67
|
});
|
|
68
68
|
if (!user) {
|
|
69
|
-
ctx.throw(401, ctx.t("The username or
|
|
69
|
+
ctx.throw(401, ctx.t("The username/email or password is incorrect, please re-enter", { ns: import_preset.namespace }));
|
|
70
70
|
}
|
|
71
71
|
const field = this.userCollection.getField("password");
|
|
72
72
|
const valid = await field.verify(password, user.password);
|
|
73
73
|
if (!valid) {
|
|
74
|
-
ctx.throw(401, ctx.t("The password is incorrect, please re-enter", { ns: import_preset.namespace }));
|
|
74
|
+
ctx.throw(401, ctx.t("The username/email or password is incorrect, please re-enter", { ns: import_preset.namespace }));
|
|
75
75
|
}
|
|
76
76
|
return user;
|
|
77
77
|
}
|
|
@@ -153,38 +153,6 @@ class BasicAuth extends import_auth.BaseAuth {
|
|
|
153
153
|
}
|
|
154
154
|
return user;
|
|
155
155
|
}
|
|
156
|
-
async changePassword() {
|
|
157
|
-
const ctx = this.ctx;
|
|
158
|
-
const {
|
|
159
|
-
values: { oldPassword, newPassword, confirmPassword }
|
|
160
|
-
} = ctx.action.params;
|
|
161
|
-
if (newPassword !== confirmPassword) {
|
|
162
|
-
ctx.throw(400, ctx.t("The password is inconsistent, please re-enter", { ns: import_preset.namespace }));
|
|
163
|
-
}
|
|
164
|
-
const currentUser = ctx.auth.user;
|
|
165
|
-
if (!currentUser) {
|
|
166
|
-
ctx.throw(401);
|
|
167
|
-
}
|
|
168
|
-
let key;
|
|
169
|
-
if (currentUser.username) {
|
|
170
|
-
key = "username";
|
|
171
|
-
} else {
|
|
172
|
-
key = "email";
|
|
173
|
-
}
|
|
174
|
-
const user = await this.userRepository.findOne({
|
|
175
|
-
where: {
|
|
176
|
-
[key]: currentUser[key]
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
const pwd = this.userCollection.getField("password");
|
|
180
|
-
const isValid = await pwd.verify(oldPassword, user.password);
|
|
181
|
-
if (!isValid) {
|
|
182
|
-
ctx.throw(401, ctx.t("The password is incorrect, please re-enter", { ns: import_preset.namespace }));
|
|
183
|
-
}
|
|
184
|
-
user.password = newPassword;
|
|
185
|
-
await user.save();
|
|
186
|
-
return currentUser;
|
|
187
|
-
}
|
|
188
156
|
}
|
|
189
157
|
// Annotate the CommonJS export names for ESM import in node:
|
|
190
158
|
0 && (module.exports = {
|
package/dist/swagger/index.d.ts
CHANGED
|
@@ -163,163 +163,6 @@ declare const _default: {
|
|
|
163
163
|
};
|
|
164
164
|
};
|
|
165
165
|
};
|
|
166
|
-
'/auth:lostPassword': {
|
|
167
|
-
post: {
|
|
168
|
-
description: string;
|
|
169
|
-
tags: string[];
|
|
170
|
-
security: any[];
|
|
171
|
-
requestBody: {
|
|
172
|
-
content: {
|
|
173
|
-
'application/json': {
|
|
174
|
-
schema: {
|
|
175
|
-
type: string;
|
|
176
|
-
properties: {
|
|
177
|
-
email: {
|
|
178
|
-
type: string;
|
|
179
|
-
description: string;
|
|
180
|
-
};
|
|
181
|
-
};
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
|
-
responses: {
|
|
187
|
-
200: {
|
|
188
|
-
description: string;
|
|
189
|
-
content: {
|
|
190
|
-
'application/json': {
|
|
191
|
-
schema: {
|
|
192
|
-
allOf: ({
|
|
193
|
-
$ref: string;
|
|
194
|
-
type?: undefined;
|
|
195
|
-
properties?: undefined;
|
|
196
|
-
} | {
|
|
197
|
-
type: string;
|
|
198
|
-
properties: {
|
|
199
|
-
resetToken: {
|
|
200
|
-
type: string;
|
|
201
|
-
description: string;
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
|
-
$ref?: undefined;
|
|
205
|
-
})[];
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
};
|
|
209
|
-
};
|
|
210
|
-
400: {
|
|
211
|
-
description: string;
|
|
212
|
-
content: {
|
|
213
|
-
'application/json': {
|
|
214
|
-
schema: {
|
|
215
|
-
$ref: string;
|
|
216
|
-
};
|
|
217
|
-
};
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
401: {
|
|
221
|
-
description: string;
|
|
222
|
-
content: {
|
|
223
|
-
'application/json': {
|
|
224
|
-
schema: {
|
|
225
|
-
$ref: string;
|
|
226
|
-
};
|
|
227
|
-
};
|
|
228
|
-
};
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
};
|
|
233
|
-
'/auth:resetPassword': {
|
|
234
|
-
post: {
|
|
235
|
-
description: string;
|
|
236
|
-
tags: string[];
|
|
237
|
-
security: any[];
|
|
238
|
-
requestBody: {
|
|
239
|
-
content: {
|
|
240
|
-
'application/json': {
|
|
241
|
-
schema: {
|
|
242
|
-
type: string;
|
|
243
|
-
properties: {
|
|
244
|
-
email: {
|
|
245
|
-
type: string;
|
|
246
|
-
description: string;
|
|
247
|
-
};
|
|
248
|
-
password: {
|
|
249
|
-
type: string;
|
|
250
|
-
description: string;
|
|
251
|
-
};
|
|
252
|
-
resetToken: {
|
|
253
|
-
type: string;
|
|
254
|
-
description: string;
|
|
255
|
-
};
|
|
256
|
-
};
|
|
257
|
-
};
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
};
|
|
261
|
-
responses: {
|
|
262
|
-
200: {
|
|
263
|
-
description: string;
|
|
264
|
-
content: {
|
|
265
|
-
'application/json': {
|
|
266
|
-
schema: {
|
|
267
|
-
$ref: string;
|
|
268
|
-
};
|
|
269
|
-
};
|
|
270
|
-
};
|
|
271
|
-
};
|
|
272
|
-
404: {
|
|
273
|
-
description: string;
|
|
274
|
-
content: {
|
|
275
|
-
'application/json': {
|
|
276
|
-
schema: {
|
|
277
|
-
$ref: string;
|
|
278
|
-
};
|
|
279
|
-
};
|
|
280
|
-
};
|
|
281
|
-
};
|
|
282
|
-
};
|
|
283
|
-
};
|
|
284
|
-
};
|
|
285
|
-
'/auth:getUserByResetToken': {
|
|
286
|
-
get: {
|
|
287
|
-
description: string;
|
|
288
|
-
tags: string[];
|
|
289
|
-
security: any[];
|
|
290
|
-
parameters: {
|
|
291
|
-
name: string;
|
|
292
|
-
in: string;
|
|
293
|
-
description: string;
|
|
294
|
-
required: boolean;
|
|
295
|
-
schema: {
|
|
296
|
-
type: string;
|
|
297
|
-
};
|
|
298
|
-
}[];
|
|
299
|
-
responses: {
|
|
300
|
-
200: {
|
|
301
|
-
description: string;
|
|
302
|
-
content: {
|
|
303
|
-
'application/json': {
|
|
304
|
-
schema: {
|
|
305
|
-
$ref: string;
|
|
306
|
-
};
|
|
307
|
-
};
|
|
308
|
-
};
|
|
309
|
-
};
|
|
310
|
-
401: {
|
|
311
|
-
description: string;
|
|
312
|
-
content: {
|
|
313
|
-
'application/json': {
|
|
314
|
-
schema: {
|
|
315
|
-
$ref: string;
|
|
316
|
-
};
|
|
317
|
-
};
|
|
318
|
-
};
|
|
319
|
-
};
|
|
320
|
-
};
|
|
321
|
-
};
|
|
322
|
-
};
|
|
323
166
|
'/auth:changePassword': {
|
|
324
167
|
post: {
|
|
325
168
|
description: string;
|
package/dist/swagger/index.js
CHANGED
|
@@ -190,165 +190,165 @@ var swagger_default = {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
},
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
},
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
},
|
|
193
|
+
// '/auth:lostPassword': {
|
|
194
|
+
// post: {
|
|
195
|
+
// description: 'Lost password',
|
|
196
|
+
// tags: ['Basic auth'],
|
|
197
|
+
// security: [],
|
|
198
|
+
// requestBody: {
|
|
199
|
+
// content: {
|
|
200
|
+
// 'application/json': {
|
|
201
|
+
// schema: {
|
|
202
|
+
// type: 'object',
|
|
203
|
+
// properties: {
|
|
204
|
+
// email: {
|
|
205
|
+
// type: 'string',
|
|
206
|
+
// description: '邮箱',
|
|
207
|
+
// },
|
|
208
|
+
// },
|
|
209
|
+
// },
|
|
210
|
+
// },
|
|
211
|
+
// },
|
|
212
|
+
// },
|
|
213
|
+
// responses: {
|
|
214
|
+
// 200: {
|
|
215
|
+
// description: 'successful operation',
|
|
216
|
+
// content: {
|
|
217
|
+
// 'application/json': {
|
|
218
|
+
// schema: {
|
|
219
|
+
// allOf: [
|
|
220
|
+
// {
|
|
221
|
+
// $ref: '#/components/schemas/user',
|
|
222
|
+
// },
|
|
223
|
+
// {
|
|
224
|
+
// type: 'object',
|
|
225
|
+
// properties: {
|
|
226
|
+
// resetToken: {
|
|
227
|
+
// type: 'string',
|
|
228
|
+
// description: '重置密码的token',
|
|
229
|
+
// },
|
|
230
|
+
// },
|
|
231
|
+
// },
|
|
232
|
+
// ],
|
|
233
|
+
// },
|
|
234
|
+
// },
|
|
235
|
+
// },
|
|
236
|
+
// },
|
|
237
|
+
// 400: {
|
|
238
|
+
// description: 'Please fill in your email address',
|
|
239
|
+
// content: {
|
|
240
|
+
// 'application/json': {
|
|
241
|
+
// schema: {
|
|
242
|
+
// $ref: '#/components/schemas/error',
|
|
243
|
+
// },
|
|
244
|
+
// },
|
|
245
|
+
// },
|
|
246
|
+
// },
|
|
247
|
+
// 401: {
|
|
248
|
+
// description: 'The email is incorrect, please re-enter',
|
|
249
|
+
// content: {
|
|
250
|
+
// 'application/json': {
|
|
251
|
+
// schema: {
|
|
252
|
+
// $ref: '#/components/schemas/error',
|
|
253
|
+
// },
|
|
254
|
+
// },
|
|
255
|
+
// },
|
|
256
|
+
// },
|
|
257
|
+
// },
|
|
258
|
+
// },
|
|
259
|
+
// },
|
|
260
|
+
// '/auth:resetPassword': {
|
|
261
|
+
// post: {
|
|
262
|
+
// description: 'Reset password',
|
|
263
|
+
// tags: ['Basic auth'],
|
|
264
|
+
// security: [],
|
|
265
|
+
// requestBody: {
|
|
266
|
+
// content: {
|
|
267
|
+
// 'application/json': {
|
|
268
|
+
// schema: {
|
|
269
|
+
// type: 'object',
|
|
270
|
+
// properties: {
|
|
271
|
+
// email: {
|
|
272
|
+
// type: 'string',
|
|
273
|
+
// description: '邮箱',
|
|
274
|
+
// },
|
|
275
|
+
// password: {
|
|
276
|
+
// type: 'string',
|
|
277
|
+
// description: '密码',
|
|
278
|
+
// },
|
|
279
|
+
// resetToken: {
|
|
280
|
+
// type: 'string',
|
|
281
|
+
// description: '重置密码的token',
|
|
282
|
+
// },
|
|
283
|
+
// },
|
|
284
|
+
// },
|
|
285
|
+
// },
|
|
286
|
+
// },
|
|
287
|
+
// },
|
|
288
|
+
// responses: {
|
|
289
|
+
// 200: {
|
|
290
|
+
// description: 'successful operation',
|
|
291
|
+
// content: {
|
|
292
|
+
// 'application/json': {
|
|
293
|
+
// schema: {
|
|
294
|
+
// $ref: '#/components/schemas/user',
|
|
295
|
+
// },
|
|
296
|
+
// },
|
|
297
|
+
// },
|
|
298
|
+
// },
|
|
299
|
+
// 404: {
|
|
300
|
+
// description: 'User not found',
|
|
301
|
+
// content: {
|
|
302
|
+
// 'application/json': {
|
|
303
|
+
// schema: {
|
|
304
|
+
// $ref: '#/components/schemas/error',
|
|
305
|
+
// },
|
|
306
|
+
// },
|
|
307
|
+
// },
|
|
308
|
+
// },
|
|
309
|
+
// },
|
|
310
|
+
// },
|
|
311
|
+
// },
|
|
312
|
+
// '/auth:getUserByResetToken': {
|
|
313
|
+
// get: {
|
|
314
|
+
// description: 'Get user by reset token',
|
|
315
|
+
// tags: ['Basic auth'],
|
|
316
|
+
// security: [],
|
|
317
|
+
// parameters: [
|
|
318
|
+
// {
|
|
319
|
+
// name: 'token',
|
|
320
|
+
// in: 'query',
|
|
321
|
+
// description: '重置密码的token',
|
|
322
|
+
// required: true,
|
|
323
|
+
// schema: {
|
|
324
|
+
// type: 'string',
|
|
325
|
+
// },
|
|
326
|
+
// },
|
|
327
|
+
// ],
|
|
328
|
+
// responses: {
|
|
329
|
+
// 200: {
|
|
330
|
+
// description: 'ok',
|
|
331
|
+
// content: {
|
|
332
|
+
// 'application/json': {
|
|
333
|
+
// schema: {
|
|
334
|
+
// $ref: '#/components/schemas/user',
|
|
335
|
+
// },
|
|
336
|
+
// },
|
|
337
|
+
// },
|
|
338
|
+
// },
|
|
339
|
+
// 401: {
|
|
340
|
+
// description: 'Unauthorized',
|
|
341
|
+
// content: {
|
|
342
|
+
// 'application/json': {
|
|
343
|
+
// schema: {
|
|
344
|
+
// $ref: '#/components/schemas/error',
|
|
345
|
+
// },
|
|
346
|
+
// },
|
|
347
|
+
// },
|
|
348
|
+
// },
|
|
349
|
+
// },
|
|
350
|
+
// },
|
|
351
|
+
// },
|
|
352
352
|
"/auth:changePassword": {
|
|
353
353
|
post: {
|
|
354
354
|
description: "Change password",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-auth",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.48-beta",
|
|
4
4
|
"main": "./dist/server/index.js",
|
|
5
5
|
"homepage": "https://docs.nocobase.com/handbook/auth",
|
|
6
6
|
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"displayName.zh-CN": "用户认证",
|
|
27
27
|
"description": "User authentication management, including password, SMS, and support for Single Sign-On (SSO) protocols, with extensibility.",
|
|
28
28
|
"description.zh-CN": "用户认证管理,包括基础的密码认证、短信认证、SSO 协议的认证等,可扩展。",
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "25f9e965a1ffe48a24e5d6ef18a6142abcf38ec3",
|
|
30
30
|
"keywords": [
|
|
31
31
|
"Authentication"
|
|
32
32
|
]
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
'The email is incorrect, please re-enter': string;
|
|
11
|
-
'Please fill in your email address': string;
|
|
12
|
-
'The password is incorrect, please re-enter': string;
|
|
13
|
-
'Not a valid cellphone number, please re-enter': string;
|
|
14
|
-
'The phone number has been registered, please login directly': string;
|
|
15
|
-
'The phone number is not registered, please register first': string;
|
|
16
|
-
};
|
|
17
|
-
export default _default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var en_US_exports = {};
|
|
28
|
-
__export(en_US_exports, {
|
|
29
|
-
default: () => en_US_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(en_US_exports);
|
|
32
|
-
var en_US_default = {
|
|
33
|
-
"The email is incorrect, please re-enter": "The email is incorrect, please re-enter",
|
|
34
|
-
"Please fill in your email address": "Please fill in your email address",
|
|
35
|
-
"The password is incorrect, please re-enter": "The password is incorrect, please re-enter",
|
|
36
|
-
"Not a valid cellphone number, please re-enter": "Not a valid cellphone number, please re-enter",
|
|
37
|
-
"The phone number has been registered, please login directly": "The phone number has been registered, please login directly",
|
|
38
|
-
"The phone number is not registered, please register first": "The phone number is not registered, please register first"
|
|
39
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
'The email is incorrect, please re-enter': string;
|
|
11
|
-
'Please fill in your email address': string;
|
|
12
|
-
'The password is incorrect, please re-enter': string;
|
|
13
|
-
'Not a valid cellphone number, please re-enter': string;
|
|
14
|
-
'The phone number has been registered, please login directly': string;
|
|
15
|
-
'The phone number is not registered, please register first': string;
|
|
16
|
-
};
|
|
17
|
-
export default _default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var fr_FR_exports = {};
|
|
28
|
-
__export(fr_FR_exports, {
|
|
29
|
-
default: () => fr_FR_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(fr_FR_exports);
|
|
32
|
-
var fr_FR_default = {
|
|
33
|
-
"The email is incorrect, please re-enter": "L'email est incorrect, veuillez le saisir \xE0 nouveau",
|
|
34
|
-
"Please fill in your email address": "Veuillez remplir votre adresse e-mail",
|
|
35
|
-
"The password is incorrect, please re-enter": "Le mot de passe est incorrect, veuillez le saisir \xE0 nouveau",
|
|
36
|
-
"Not a valid cellphone number, please re-enter": "Num\xE9ro de t\xE9l\xE9phone portable non valide, veuillez le saisir \xE0 nouveau",
|
|
37
|
-
"The phone number has been registered, please login directly": "Le num\xE9ro de t\xE9l\xE9phone a \xE9t\xE9 enregistr\xE9, veuillez vous connecter directement",
|
|
38
|
-
"The phone number is not registered, please register first": "Le num\xE9ro de t\xE9l\xE9phone n'est pas enregistr\xE9, veuillez vous inscrire d'abord"
|
|
39
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
export { default as enUS } from './en-US';
|
|
10
|
-
export { default as zhCN } from './zh-CN';
|
|
11
|
-
export { default as ptBR } from './pt-BR';
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __export = (target, all) => {
|
|
17
|
-
for (var name in all)
|
|
18
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
-
};
|
|
20
|
-
var __copyProps = (to, from, except, desc) => {
|
|
21
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
-
for (let key of __getOwnPropNames(from))
|
|
23
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
-
}
|
|
26
|
-
return to;
|
|
27
|
-
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
-
var locale_exports = {};
|
|
38
|
-
__export(locale_exports, {
|
|
39
|
-
enUS: () => import_en_US.default,
|
|
40
|
-
ptBR: () => import_pt_BR.default,
|
|
41
|
-
zhCN: () => import_zh_CN.default
|
|
42
|
-
});
|
|
43
|
-
module.exports = __toCommonJS(locale_exports);
|
|
44
|
-
var import_en_US = __toESM(require("./en-US"));
|
|
45
|
-
var import_zh_CN = __toESM(require("./zh-CN"));
|
|
46
|
-
var import_pt_BR = __toESM(require("./pt-BR"));
|
|
47
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
48
|
-
0 && (module.exports = {
|
|
49
|
-
enUS,
|
|
50
|
-
ptBR,
|
|
51
|
-
zhCN
|
|
52
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
'Please fill in your email address': string;
|
|
11
|
-
'The password is incorrect, please re-enter': string;
|
|
12
|
-
};
|
|
13
|
-
export default _default;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var ja_JP_exports = {};
|
|
28
|
-
__export(ja_JP_exports, {
|
|
29
|
-
default: () => ja_JP_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(ja_JP_exports);
|
|
32
|
-
var ja_JP_default = {
|
|
33
|
-
"Please fill in your email address": "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
34
|
-
"The password is incorrect, please re-enter": "\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002\u518D\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
|
|
35
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
'The email is incorrect, please re-enter': string;
|
|
11
|
-
'Please fill in your email address': string;
|
|
12
|
-
'The password is incorrect, please re-enter': string;
|
|
13
|
-
'Not a valid cellphone number, please re-enter': string;
|
|
14
|
-
'The phone number has been registered, please login directly': string;
|
|
15
|
-
'The phone number is not registered, please register first': string;
|
|
16
|
-
};
|
|
17
|
-
export default _default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var pt_BR_exports = {};
|
|
28
|
-
__export(pt_BR_exports, {
|
|
29
|
-
default: () => pt_BR_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(pt_BR_exports);
|
|
32
|
-
var pt_BR_default = {
|
|
33
|
-
"The email is incorrect, please re-enter": "O e-mail est\xE1 incorreto, por favor, digite novamente",
|
|
34
|
-
"Please fill in your email address": "Por favor, preencha o seu endere\xE7o de e-mail",
|
|
35
|
-
"The password is incorrect, please re-enter": "A senha est\xE1 incorreta, por favor, digite novamente",
|
|
36
|
-
"Not a valid cellphone number, please re-enter": "N\xFAmero de celular inv\xE1lido, por favor, digite novamente",
|
|
37
|
-
"The phone number has been registered, please login directly": "O n\xFAmero de celular j\xE1 est\xE1 registrado, por favor, fa\xE7a login diretamente",
|
|
38
|
-
"The phone number is not registered, please register first": "O n\xFAmero de celular n\xE3o est\xE1 registrado, por favor, registre-se primeiro"
|
|
39
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
'The username or email is incorrect, please re-enter': string;
|
|
11
|
-
'The password is incorrect, please re-enter': string;
|
|
12
|
-
'Not a valid cellphone number, please re-enter': string;
|
|
13
|
-
'The phone number has been registered, please login directly': string;
|
|
14
|
-
'The phone number is not registered, please register first': string;
|
|
15
|
-
'Please keep and enable at least one authenticator': string;
|
|
16
|
-
'Please enter your username or email': string;
|
|
17
|
-
'Please enter a valid username': string;
|
|
18
|
-
};
|
|
19
|
-
export default _default;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var zh_CN_exports = {};
|
|
28
|
-
__export(zh_CN_exports, {
|
|
29
|
-
default: () => zh_CN_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(zh_CN_exports);
|
|
32
|
-
var zh_CN_default = {
|
|
33
|
-
"The username or email is incorrect, please re-enter": "\u7528\u6237\u540D\u6216\u90AE\u7BB1\u6709\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165",
|
|
34
|
-
"The password is incorrect, please re-enter": "\u5BC6\u7801\u6709\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165",
|
|
35
|
-
"Not a valid cellphone number, please re-enter": "\u4E0D\u662F\u6709\u6548\u7684\u624B\u673A\u53F7\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165",
|
|
36
|
-
"The phone number has been registered, please login directly": "\u624B\u673A\u53F7\u5DF2\u6CE8\u518C\uFF0C\u8BF7\u76F4\u63A5\u767B\u5F55",
|
|
37
|
-
"The phone number is not registered, please register first": "\u624B\u673A\u53F7\u672A\u6CE8\u518C\uFF0C\u8BF7\u5148\u6CE8\u518C",
|
|
38
|
-
"Please keep and enable at least one authenticator": "\u8BF7\u81F3\u5C11\u4FDD\u7559\u5E76\u542F\u7528\u4E00\u4E2A\u8BA4\u8BC1\u5668",
|
|
39
|
-
"Please enter your username or email": "\u8BF7\u8F93\u5165\u7528\u6237\u540D\u6216\u90AE\u7BB1",
|
|
40
|
-
"Please enter a valid username": "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u7528\u6237\u540D"
|
|
41
|
-
};
|