Search code examples
typescriptloopback4

An argument for 'invokeMiddleware' was not provided


I got this error while implementing loopback4 authentication.

    constructor (
    // ---- ADD THIS LINE ------
    @inject(AuthenticationBindings.AUTH_ACTION)
    protected authenticateRequest: AuthenticateFn,
    ) {
       super(authenticateRequest);
    }

Solution

  • This answer was taken from the community Slack channel

    As per-the documentation (permalink), modifying src/sequence.ts is only meant for the now-deprecated Action-based Sequences, and not required for Middleware-based Sequences which are used by default on newly-generated LoopBack 4 projects.

    How to identify the "sequence type"

    The class signature will hint at which sequence type is being used:

    // Action-based sequence
    class MySequence extends DefaultSequence {/* ... */}
    
    // Middleware-based Sequence
    class MySequence extends MiddlewareSequence {/* ... */}