Sé que hay muchas preguntas similares, pero todavía no he podido encontrar respuestas a mis preguntas.
@UseGuards(JwtAuthGuard) public async create( @Req() request: RequestWithUserModel, @Body() createUserEnterpriseDto: CreateUserEnterpriseDto, ): Promise<UserEnterpriseEntity> { return await this.userEnterpriseService.create( request.user, createUserEnterpriseDto, ); } Y obtengo usuario en mi @UseGuards() . Pero si voy a usar ese enfoque para cada punto final, creará presión para db, ¿no es así? Si es así, ¿existen las mejores maneras de lidiar con eso?
¡Gracias por las respuestas!
Si está implementando OAuth usted mismo, entonces sí, debe almacenar el token de actualización en su base de datos. Recomendaría usar la implementación del proveedor de identidad como Auth0 en lugar de reinventar la rueda.
Sí, redis es una excelente opción para diseñar su servicio de autenticación. Este artículo hace un buen trabajo al explicar el aspecto del porqué. https://redis.com/blog/json-web-tokens-jwt-are-dangerous-for-user-sessions/
JWT es esencialmente una forma de autorización sin estado. Una vez que su proveedor de identidad haya emitido un JWT, todo lo que se necesita para cualquier API autorizada es probar la validez de JWT. Esto significa asegurarse de que JWT no haya caducado y sea válido y tenga las funciones necesarias. La validación contra db para todas las api autorizadas supera el propósito de un jwt
Espero que esto ayude