feat: add @zitadel/node pkg

This commit is contained in:
Yordis Prieto
2024-05-28 11:24:12 -04:00
parent df73742907
commit 4594f22b3b
8 changed files with 167 additions and 5 deletions

View File

@@ -0,0 +1,35 @@
import { NewAuthorizationBearerInterceptor } from "@zitadel/client2";
import {
createGrpcWebTransport,
GrpcTransportOptions,
} from "@connectrpc/connect-node";
import { importPKCS8, SignJWT } from "jose";
/**
* Create a server transport with the given token and configuration options.
* @param token
* @param opts
*/
export function createServerTransport(
token: string,
opts: GrpcTransportOptions,
) {
return createGrpcWebTransport({
...opts,
interceptors: [
...(opts.interceptors || []),
NewAuthorizationBearerInterceptor(token),
],
});
}
export async function newSystemToken() {
return await new SignJWT({})
.setProtectedHeader({ alg: "RS256" })
.setIssuedAt()
.setExpirationTime("1h")
.setIssuer(process.env.ZITADEL_SYSTEM_API_USERID ?? "")
.setSubject(process.env.ZITADEL_SYSTEM_API_USERID ?? "")
.setAudience(process.env.ZITADEL_ISSUER ?? "")
.sign(await importPKCS8(process.env.ZITADEL_SYSTEM_API_KEY ?? "", "RS256"));
}