Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add logic to parse correctly cookies on req #108

Merged
merged 1 commit into from
Aug 10, 2024

Conversation

alanszp
Copy link
Owner

@alanszp alanszp commented Aug 10, 2024

Este PR agrega el fix para que podamos realmente parsear las cookies del request y podamos obtener el jwt de ahi. Tambien aprovecho y normalizo las keys a utilizar de las cookies asi no hay dudas cuales podemos usar.
Hoy tenemos 3 casos:

  • Login normal del usuario
  • Impersonar a otro usuario
  • Partial Login (se usa cuando hay un MFA challenge antes de iniciar sesion, para que no tengas que pasar un token con full permisos y puedas pegarle a unos endpoints de forma autenticada pero sin muchas acciones)

Por default y vamos a hacer la validacion primero de

  • Usuario impersonado.
  • Si no hay usuario impersonado, trato de buscar el usuario normal
  • Sino, voy a buscar al headear de Authorization
  • Sino fallo el login.

si queremos cambiar las keys a comprobar (y su orden) simplemente usamos la nueva config de JWTOptions cookiesKeys. Ahi pasamos un array ordenados de keys a chequear para buscar un jwt. El primero que encuentra se usa.
Si no se manda define como default [JwtCookiesKeys.IMPERSONATED_ACCESS, JwtCookiesKeys.USER_ACCESS] para respetar la logica default que explico arriba.

Aprovecho y ya paso también el parseCookie por si lo tiene que usar alguien, ya que express no lo trae por defecto y asi usamos siempre la misma version.

@alanszp alanszp merged commit 2a1ae40 into main Aug 10, 2024
3 checks passed
@alanszp alanszp deleted the feature/add-express-jwt-cookie branch August 10, 2024 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant