UNPKG

@medusajs/core-flows

Version:

Set of workflow definitions for Medusa

73 lines 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateResetPasswordTokenWorkflow = void 0; const utils_1 = require("@medusajs/framework/utils"); const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); const common_1 = require("../../common"); /** * This workflow generates a reset password token for a user. It's used by the * [Generate Reset Password Token for Admin](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerresetpassword) * and [Generate Reset Password Token for Customer](https://docs.medusajs.com/api/store#auth_postactor_typeauth_providerresetpassword) * API Routes. * * The workflow emits the `auth.password_reset` event, which you can listen to in * a [subscriber](https://docs.medusajs.com/learn/fundamentals/events-and-subscribers). Follow * [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password) to learn * how to handle this event. * * You can use this workflow within your customizations or your own custom workflows, allowing you to * generate reset password tokens within your custom flows. * * @example * const { result } = await generateResetPasswordTokenWorkflow(container) * .run({ * input: { * entityId: "example@gmail.com", * actorType: "customer", * provider: "emailpass", * secret: "jwt_123" // jwt secret * } * }) * * @summary * * Generate a reset password token for a user or customer. */ exports.generateResetPasswordTokenWorkflow = (0, workflows_sdk_1.createWorkflow)("generate-reset-password-token", (input) => { const providerIdentities = (0, common_1.useRemoteQueryStep)({ entry_point: "provider_identity", fields: ["auth_identity_id", "provider_metadata"], variables: { filters: { entity_id: input.entityId, provider: input.provider, }, }, }); const token = (0, workflows_sdk_1.transform)({ input, providerIdentities }, ({ input, providerIdentities }) => { const providerIdentity = providerIdentities?.[0]; if (!providerIdentity) { throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Provider identity with entity_id ${input.entityId} and provider ${input.provider} not found`); } const token = (0, utils_1.generateJwtToken)({ entity_id: input.entityId, provider: input.provider, actor_type: input.actorType, }, { secret: input.secret, expiresIn: "15m", jwtOptions: input.jwtOptions, }); return token; }); (0, common_1.emitEventStep)({ eventName: utils_1.AuthWorkflowEvents.PASSWORD_RESET, data: { entity_id: input.entityId, actor_type: input.actorType, token, }, }); return new workflows_sdk_1.WorkflowResponse(token); }); //# sourceMappingURL=generate-reset-password-token.js.map