Allow configuring login cookie with an expiry duration

Abierto
#7,301 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript

Línea de trabajo

Comienza en src/node/http.ts alrededor de la línea 328 y, a continuación, sigue cómo se definen y leen los argumentos de configuración. Añade una opción de expiración para la cookie de inicio de sesión, conservando el comportamiento de cookie de sesión cuando está ausente o es cero. Confirma que la duración configurada mantiene la cookie de inicio de sesión después de que se cierre el navegador.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

What is your suggestion?

Allow configuring an (optional) expiry age for the login cookie so that it persists beyond a browser session. This is handy for not re-entering the password every time.

Possible change:
https://github.com/coder/code-server/blob/main/src/node/http.ts#L328

...
return {
  domain: getCookieDomain(url.host, req.args["proxy-domain"]),
  path: normalize(url.pathname) || "/",
  sameSite: "lax",
  // Load, if provided, max age for login cookie. 0 means it becomes a Session cookie (according to Express docs)
  maxAge: getConfigCookieMaxAgeAsMilliseconds() || 0,
}

Why do you want this feature?

I want to maintain my login status even after closing the browser (as the Cookie is currently session-only). Say keep the login cookie for a week or a month. Adding a max-age changes the cookie from Session to persistent for the given duration using Express' maxAge parameter (docs).

Are there any workarounds to get this functionality today?

No, none directly. User can manually edit the cookie in Devtools

Are you interested in submitting a PR for this?

I'm not that familiar with how to make new configuration argument and also how the config args are read (there's some middleware for args IIRC, but not sure how to use that). But I can give it a go, with some help.

The above given change should be roughly all that's needed, sans the config reading.

Lenguaje dominante
TypeScript
Estrellas
79.4k
Forks
6.9k
Merge medio
2 d 13 h
PR fusionados (30 d)
39

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de coder/code-server

Todos los issues de coder/code-server

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.