node.js - Hur man skapar en anpassad Routing-Controller-metoddekoration som Authorized


Jag märkte att vi kunde skapa egna parameterdekorerare, men jag verkar inte kunna hitta ett sätt att göra egna metoddekorerare.

Jag skulle vilja kunna skapa mina egna versioner av något liknande Authorized-dekoreraren som utför några ytterligare kontroller. Jag kan sedan kombinera dem genom att lägga till eller ta bort dekoratorer.

Till exempel kan en rutt se ut så här:

@Authorized()
@SomeCheck()
@SomeOtherCheck()
@Post("/someRoute")
public CompleteOnboarding(){

}

@Authorized()
@SomeCheck()
@ADifferentCheck()
@Post("/someRoute")
public CompleteOnboarding(){

}

Det verkar som att jag kan trycka in några falska 'roller' i Authorized och låta min authorizationChecker utföra de ytterligare kontrollerna baserat på vilka 'roller' som skickas in, men detta verkade vara lite av en hack och inte särskilt utbyggbart, så jag tänkte att det kanske finns ett annat sätt.