@flink-app/generic-auth-plugin 0.7.0-alpha.0 → 0.11.0
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/.flink/generatedHandlers.ts +24 -1
- package/.flink/generatedJobs.ts +1 -1
- package/.flink/generatedRepos.ts +1 -1
- package/.flink/schemas/schemas.json +607 -1
- package/.flink/schemas/schemas.ts +1 -1
- package/.flink/start.ts +1 -1
- package/dist/.flink/generatedHandlers.js +1 -1
- package/dist/.flink/generatedJobs.js +1 -1
- package/dist/.flink/generatedRepos.js +1 -1
- package/dist/.flink/schemas/schemas.json +607 -1
- package/dist/.flink/start.js +1 -1
- package/dist/src/coreFunctions.js +8 -3
- package/dist/src/handlers/Management/DeleteUserByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/DeleteUserByUserid.js +3 -0
- package/dist/src/handlers/Management/GetSchema.d.ts +2 -0
- package/dist/src/handlers/Management/GetSchema.js +3 -0
- package/dist/src/handlers/Management/GetUser.d.ts +2 -0
- package/dist/src/handlers/Management/GetUser.js +3 -0
- package/dist/src/handlers/Management/GetUserByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/GetUserByUserid.js +3 -0
- package/dist/src/handlers/Management/GetUserViewByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/GetUserViewByUserid.js +3 -0
- package/dist/src/handlers/Management/PutUserPasswordByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/PutUserPasswordByUserid.js +3 -0
- package/dist/src/handlers/Management/PutUserProfileByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/PutUserProfileByUserid.js +3 -0
- package/dist/src/handlers/Management/PutUserProfileByUseridAppend.d.ts +2 -0
- package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js +3 -0
- package/dist/src/handlers/Management/PutUserRolesByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/PutUserRolesByUserid.js +3 -0
- package/dist/src/handlers/Management/PutUserUsernameByUserid.d.ts +2 -0
- package/dist/src/handlers/Management/PutUserUsernameByUserid.js +3 -0
- package/dist/src/handlers/UserCreate.d.ts +2 -0
- package/dist/src/handlers/UserCreate.js +3 -0
- package/dist/src/handlers/UserLogin.d.ts +2 -0
- package/dist/src/handlers/UserLogin.js +3 -0
- package/dist/src/handlers/UserLoginByToken.d.ts +2 -0
- package/dist/src/handlers/UserLoginByToken.js +3 -0
- package/dist/src/handlers/UserPasswordPut.d.ts +2 -0
- package/dist/src/handlers/UserPasswordPut.js +3 -0
- package/dist/src/handlers/UserPasswordResetComplete.d.ts +2 -0
- package/dist/src/handlers/UserPasswordResetComplete.js +3 -0
- package/dist/src/handlers/UserPasswordResetForm.d.ts +1 -0
- package/dist/src/handlers/UserPasswordResetForm.js +2 -1
- package/dist/src/handlers/UserPasswordResetStart.d.ts +2 -0
- package/dist/src/handlers/UserPasswordResetStart.js +14 -7
- package/dist/src/handlers/UserProfileGet.d.ts +2 -0
- package/dist/src/handlers/UserProfileGet.js +3 -0
- package/dist/src/handlers/UserProfilePut.d.ts +2 -0
- package/dist/src/handlers/UserProfilePut.js +3 -0
- package/dist/src/handlers/UserPushRegisterToken.d.ts +2 -0
- package/dist/src/handlers/UserPushRegisterToken.js +3 -0
- package/dist/src/handlers/UserPushRemoveToken.d.ts +2 -0
- package/dist/src/handlers/UserPushRemoveToken.js +3 -0
- package/dist/src/handlers/UserToken.d.ts +2 -0
- package/dist/src/handlers/UserToken.js +3 -0
- package/dist/src/schemas/UserPasswordResetSettings.d.ts +14 -5
- package/package.json +7 -7
- package/src/coreFunctions.ts +11 -2
- package/src/handlers/UserPasswordResetStart.ts +41 -49
- package/src/schemas/UserPasswordResetSettings.ts +21 -10
|
@@ -7,67 +7,59 @@ import { UserPasswordResetStartReq } from "../schemas/UserPasswordResetStartReq"
|
|
|
7
7
|
import { UserPasswordResetStartResPublic } from "../schemas/UserPasswordResetStartResPublic";
|
|
8
8
|
|
|
9
9
|
const postPasswordResetStartHandler: Handler<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
FlinkContext<genericAuthContext & emailPluginContext>,
|
|
11
|
+
UserPasswordResetStartReq,
|
|
12
|
+
UserPasswordResetStartResPublic
|
|
13
13
|
> = async ({ ctx, req, origin }) => {
|
|
14
|
-
|
|
15
|
-
let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];
|
|
14
|
+
let pluginName = origin || "genericAuthPlugin";
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
return internalServerError(
|
|
19
|
-
"Email plugin have to be initialized to use /password/reset"
|
|
20
|
-
);
|
|
21
|
-
}
|
|
16
|
+
const genericAuthPlugin = (<any>ctx.plugins)[pluginName] as genericAuthContext["genericAuthPlugin"];
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
return internalServerError(
|
|
25
|
-
"Password reset settings is needed to use /password/reset"
|
|
26
|
-
);
|
|
27
|
-
}
|
|
18
|
+
let repo = ctx.repos[genericAuthPlugin.repoName];
|
|
28
19
|
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
if (ctx.plugins.emailPlugin?.client == null) {
|
|
21
|
+
return internalServerError("Email plugin have to be initialized to use /password/reset");
|
|
22
|
+
}
|
|
31
23
|
|
|
32
|
-
|
|
24
|
+
if (!genericAuthPlugin.passwordResetSettings) {
|
|
25
|
+
return internalServerError("Password reset settings is needed to use /password/reset");
|
|
26
|
+
}
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
repo,
|
|
36
|
-
<JwtAuthPlugin>ctx.auth,
|
|
37
|
-
jwtSecret,
|
|
38
|
-
req.body.username,
|
|
39
|
-
numberOfDigits,
|
|
40
|
-
lifeTime
|
|
41
|
-
);
|
|
28
|
+
const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;
|
|
42
29
|
|
|
43
|
-
|
|
44
|
-
return { data: { status: resp.status } };
|
|
45
|
-
}
|
|
30
|
+
const resp = await genericAuthPlugin.passwordResetStart(repo, <JwtAuthPlugin>ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime);
|
|
46
31
|
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
if (resp.status != "success") {
|
|
33
|
+
return { data: { status: "success", passwordResetToken: resp.passwordResetToken } };
|
|
34
|
+
}
|
|
49
35
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
36
|
+
const emailCtx = {
|
|
37
|
+
code: resp.code,
|
|
38
|
+
passwordResetToken: resp.passwordResetToken,
|
|
39
|
+
username: req.body.username,
|
|
40
|
+
profile: resp.profile,
|
|
41
|
+
};
|
|
56
42
|
|
|
57
|
-
|
|
58
|
-
const html = Handlebars.compile(emailSettings.html)(emailCtx);
|
|
59
|
-
const email = req.body.username;
|
|
43
|
+
let emailSettings = genericAuthPlugin.passwordResetSettings.email;
|
|
60
44
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
subject,
|
|
65
|
-
html,
|
|
66
|
-
});
|
|
45
|
+
if (typeof emailSettings == "function") {
|
|
46
|
+
emailSettings = emailSettings(emailCtx);
|
|
47
|
+
}
|
|
67
48
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
49
|
+
const subject = Handlebars.compile(emailSettings.subject)(emailCtx);
|
|
50
|
+
const html = Handlebars.compile(emailSettings.html)(emailCtx);
|
|
51
|
+
const email = req.body.username;
|
|
52
|
+
|
|
53
|
+
await ctx.plugins.emailPlugin.client.send({
|
|
54
|
+
from: emailSettings.from_address,
|
|
55
|
+
to: [email],
|
|
56
|
+
subject,
|
|
57
|
+
html,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
data: { status: "success", passwordResetToken: resp.passwordResetToken },
|
|
62
|
+
};
|
|
71
63
|
};
|
|
72
64
|
|
|
73
65
|
export default postPasswordResetStartHandler;
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { UserProfile } from "./UserProfile";
|
|
2
|
+
|
|
3
|
+
interface EmailConfig {
|
|
3
4
|
from_address: string;
|
|
4
5
|
subject: string;
|
|
5
6
|
html: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface EmailCtx {
|
|
10
|
+
code?: string;
|
|
11
|
+
passwordResetToken?: string;
|
|
12
|
+
username: string;
|
|
13
|
+
profile?: UserProfile;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface UserPasswordResetSettings {
|
|
17
|
+
email: EmailConfig | ((emailCtx: EmailCtx) => EmailConfig);
|
|
18
|
+
code: {
|
|
19
|
+
numberOfDigits: number;
|
|
20
|
+
lifeTime: string;
|
|
21
|
+
jwtSecret: string;
|
|
22
|
+
};
|
|
23
|
+
enablePasswordResetForm?: boolean;
|
|
24
|
+
passwordResetForm?: string;
|
|
14
25
|
}
|