Estoy tratando de seguirhttps://loopback.io/doc/en/lb4/Implement-your-own-strategy.html y llegué hasta ahora con los siguientes pasos:
Paso 1: creó una estrategia personalizada (auth/my-strategy.ts) basada en el siguiente patrón
export class MyAuthenticationStrategy implements AuthenticationStrategy { name: string = 'my'; /** * The 'authenticate' method takes in a given request and returns a user profile * which is an instance of 'UserProfile'. * (A user profile is a minimal subset of a user object) * If the user credentials are valid, this method should return a 'UserProfile' instance. * If the user credentials are invalid, this method should throw an error * If the user credentials are missing, this method should throw an error, or return ' undefined' * and let the authentication action deal with it. * * @param request - Express request object */ authenticate(request: Request): Promise<UserProfile | undefined> { // custom auth logic // throw error or return UserProfile }; }Paso 2: he registrado la estrategia en application.ts
// Mount authentication system this.component(AuthenticationComponent); // Register Auth Strategy registerAuthenticationStrategy(this, MyAuthenticationStrategy);Paso 3: Se agregó lo siguiente en mi clase de controlador
@authenticate('my') export class XxxController { ... }No estoy seguro de lo que me estoy perdiendo aquí, ya que no hay ningún error ni mi función de autenticación funciona/ejecuta.
No estoy seguro de lo que hace este paso como se explica aquí . ¿Necesito crear una extensión separada para mi estrategia? más bien, preferiría mantener este código (estrategia de autenticación) dentro del proyecto principal, en lugar de crear un proyecto separado para la extensión.
Por favor ayuda. Gracias,
Gagan