Files
zitadel/apps/login/lib/zitadel.ts

170 lines
3.9 KiB
TypeScript
Raw Normal View History

2023-04-20 14:39:51 +02:00
import {
2023-04-21 13:49:15 +02:00
ZitadelServer,
2023-04-20 14:39:51 +02:00
ZitadelServerOptions,
2023-05-17 17:04:56 +02:00
user,
settings,
2023-04-20 14:39:51 +02:00
getServers,
initializeServer,
session,
2023-04-20 14:39:51 +02:00
} from "@zitadel/server";
2023-04-20 12:55:39 +02:00
2023-04-20 14:26:55 +02:00
export const zitadelConfig: ZitadelServerOptions = {
name: "zitadel login",
2023-04-13 13:26:02 +02:00
apiUrl: process.env.ZITADEL_API_URL ?? "",
2023-04-20 14:26:55 +02:00
token: process.env.ZITADEL_SERVICE_USER_TOKEN ?? "",
2023-04-13 13:26:02 +02:00
};
let server: ZitadelServer;
2023-04-20 14:26:55 +02:00
if (!getServers().length) {
console.log("initialize server");
server = initializeServer(zitadelConfig);
2023-04-13 13:26:02 +02:00
}
2023-05-15 09:23:59 +02:00
export function getBrandingSettings(
2023-04-21 13:49:15 +02:00
server: ZitadelServer
2023-05-15 09:23:59 +02:00
): Promise<any | undefined> {
// settings.branding_settings.BrandingSettings
const settingsService = settings.getSettings(server);
return settingsService
.getBrandingSettings(
{},
2023-04-27 17:07:57 +02:00
{
// metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "")
}
)
2023-05-15 09:23:59 +02:00
.then((resp) => resp.settings);
2023-04-21 13:49:15 +02:00
}
export function getGeneralSettings(
server: ZitadelServer
): Promise<any | undefined> {
// settings.branding_settings.BrandingSettings
const settingsService = settings.getSettings(server);
return settingsService
.getGeneralSettings(
{},
{
// metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "")
}
)
.then((resp) => resp.supportedLanguages);
}
2023-05-15 09:23:59 +02:00
export function getLegalAndSupportSettings(
2023-04-26 15:14:28 +02:00
server: ZitadelServer
2023-05-15 09:23:59 +02:00
): Promise<any | undefined> {
const settingsService = settings.getSettings(server);
return settingsService
.getLegalAndSupportSettings(
2023-04-26 15:14:28 +02:00
{},
2023-04-27 17:07:57 +02:00
{
// metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "")
}
2023-04-26 15:14:28 +02:00
)
2023-05-15 09:23:59 +02:00
.then((resp) => resp.settings);
2023-04-26 15:14:28 +02:00
}
2023-05-15 09:23:59 +02:00
export function getPasswordComplexitySettings(
2023-04-26 15:14:28 +02:00
server: ZitadelServer
2023-05-15 09:23:59 +02:00
): Promise<any | undefined> {
const settingsService = settings.getSettings(server);
2023-05-15 09:23:59 +02:00
return settingsService
.getPasswordComplexitySettings(
2023-04-26 15:14:28 +02:00
{},
2023-04-27 17:07:57 +02:00
{
// metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "")
}
2023-04-26 15:14:28 +02:00
)
2023-05-15 09:23:59 +02:00
.then((resp) => resp.settings);
2023-04-26 15:14:28 +02:00
}
export function createSession(
server: ZitadelServer,
loginName: string
): Promise<any | undefined> {
const sessionService = session.getSession(server);
return sessionService.createSession({ checks: { user: { loginName } } }, {});
}
export function setSession(
server: ZitadelServer,
sessionId: string,
sessionToken: string,
password: string
): Promise<any | undefined> {
const sessionService = session.getSession(server);
return sessionService.setSession(
{ sessionId, sessionToken, checks: { password: { password } } },
{}
);
}
export function getSession(
server: ZitadelServer,
sessionId: string,
sessionToken: string
): Promise<any | undefined> {
const sessionService = session.getSession(server);
return sessionService.getSession({ sessionId, sessionToken }, {});
}
2023-05-17 15:25:25 +02:00
export function listSessions(
server: ZitadelServer,
ids: string[]
): Promise<any | undefined> {
const sessionService = session.getSession(server);
const query = { offset: 0, limit: 100, asc: true };
console.log(ids);
const queries = [{ idsQuery: { ids } }];
return sessionService.listSessions({ queries: queries }, {});
}
export type AddHumanUserData = {
2023-04-26 18:36:09 +02:00
firstName: string;
lastName: string;
email: string;
password: string;
};
2023-05-17 17:04:56 +02:00
export function addHumanUser(
server: ZitadelServer,
2023-04-26 18:36:09 +02:00
{ email, firstName, lastName, password }: AddHumanUserData
): Promise<string> {
2023-05-17 17:04:56 +02:00
const mgmt = user.getUser(server);
return mgmt
.addHumanUser(
{
2023-05-19 10:13:05 +02:00
email: { email },
2023-05-17 17:04:56 +02:00
username: email,
2023-04-26 18:36:09 +02:00
profile: { firstName, lastName },
2023-05-17 17:04:56 +02:00
password: { password },
},
2023-04-27 17:07:57 +02:00
{
// metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "")
}
)
.then((resp) => {
console.log("added user", resp.userId);
return resp.userId;
});
}
2023-05-17 17:04:56 +02:00
export function verifyEmail(
server: ZitadelServer,
userId: string,
verificationCode: string
): Promise<any> {
const mgmt = user.getUser(server);
return mgmt.verifyEmail(
{
userId,
verificationCode,
},
{}
);
}
2023-04-21 13:49:15 +02:00
export { server };