UNPKG

feathers-authentication-management

Version:

Adds sign up verification, forgotten password reset, and other capabilities to local feathers-authentication

53 lines (48 loc) 1.64 kB
import { checkContext, getItems, replaceItems } from 'feathers-hooks-common'; import type { HookContext } from '@feathersjs/feathers'; import type { User } from '../types'; /** * Sanitize users. After-hook for '/users' service. */ export function removeVerification <H extends HookContext = HookContext> ( ifReturnTokens?: boolean ) { return (context: H): H => { checkContext(context, 'after'); // Retrieve the items from the hook const items: User | User[] = getItems(context); if (!items) return; const isArray = Array.isArray(items); const users = (isArray ? items : [items]); users.forEach((user) => { if (!('isVerified' in user) && context.method === 'create') { /* eslint-disable no-console */ console.warn( 'Property isVerified not found in user properties. (removeVerification)' ); console.warn( "Have you added authManagement's properties to your model? (Refer to README)" ); console.warn( 'Have you added the addVerification hook on users::create?' ); /* eslint-enable */ } if (context.params.provider && user) { // noop if initiated by server delete user.verifyExpires; delete user.resetExpires; delete user.verifyChanges; if (!ifReturnTokens) { delete user.verifyToken; delete user.verifyShortToken; delete user.resetToken; delete user.resetShortToken; } } }); // Replace the items within the hook replaceItems(context, isArray ? users : users[0]); return context; }; }