loopbackio / loopbackio/loopback-next
How to report HttpErrors.Forbidden from authenticate action
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 1.1k
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 27
Descripción
Suggestion
I have implement JWTStrategy
every thing working fine. now I am trying to further authenticate according to user roles
e.g if logged in user is not `ADMIN` raised `HttpErrors.Forbidden` error
current strategy-adapter.js code only raise InternalServerError if I pass error in cb() of JWTStrategy
I have changed strategy-adapter.js
`reject(new rest_1.HttpErrors.InternalServerError(error));` to
`reject(error);` and pass
`cb(new HttpErrors.Forbidden(), false);` in `auth-strategy.provides.ts`
which working according to my requirement
my question is there best way to implement changes in my code instead of changing in @loopback/authentication module directly
Existing CODE
`@loopback/authentication/strategy-adapter.js `
```js
strategy.error = function (error) {
reject(new rest_1.HttpErrors.InternalServerError(error));
};
```
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza leyendo @loopback/authentication/strategy-adapter.js y el uso del callback de auth-strategy.provides.ts mostrado en el issue. Sigue el recorrido de cómo los errores de estrategia se convierten en errores HTTP y determina qué punto de extensión compatible conservaría HttpErrors.Forbidden sin editar directamente el módulo; se considera terminado cuando el error de role-authentication se propaga a través de la ruta de código de aplicación documentada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- authentication
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100