export const config = Config.nested('jwt')(
Config.all({
privateKey: Config.secret('privateKey'),
issuer: Config.string('issuer'),
algorithm: Config.literal('RS256', 'HS256')('algorithm'),
keyid: Config.string('kid'),
}),
);
export const sign = (
payload: object = {},
options: Partial<jwt.SignOptions> = {},
): Effect.Effect<string, ConfigError.ConfigError> =>
Effect.map(config, (config) =>
jwt.sign(payload, Secret.value(config.privateKey), {
subject: config.issuer,
issuer: config.issuer,
algorithm: config.algorithm,
keyid: config.keyid,
expiresIn: '15m',
...options,
}),
).pipe(Effect.withSpan('JsonWebToken.sign'));
export const config = Config.nested('jwt')(
Config.all({
privateKey: Config.secret('privateKey'),
issuer: Config.string('issuer'),
algorithm: Config.literal('RS256', 'HS256')('algorithm'),
keyid: Config.string('kid'),
}),
);
export const sign = (
payload: object = {},
options: Partial<jwt.SignOptions> = {},
): Effect.Effect<string, ConfigError.ConfigError> =>
Effect.map(config, (config) =>
jwt.sign(payload, Secret.value(config.privateKey), {
subject: config.issuer,
issuer: config.issuer,
algorithm: config.algorithm,
keyid: config.keyid,
expiresIn: '15m',
...options,
}),
).pipe(Effect.withSpan('JsonWebToken.sign'));