Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

feat(auth): added auth store #43

Merged
merged 2 commits into from
Mar 3, 2024
Merged

feat(auth): added auth store #43

merged 2 commits into from
Mar 3, 2024

Conversation

adrrf
Copy link
Contributor

@adrrf adrrf commented Feb 29, 2024

resuelve #10
a la espera del backend para completar la llamada de login y terminar de poner los campos necesarios de usuario

@adrrf adrrf self-assigned this Feb 29, 2024
@adrrf adrrf requested a review from ferferga February 29, 2024 18:25
@adrrf adrrf added code Tasks related to coding enhancement New feature or request frontend Issues related to frontend development labels Feb 29, 2024
Comment on lines 49 to 63
public readonly name = (): string | undefined => {
return this._state.value.name;
};

public readonly id = (): number | undefined => {
return this._state.value.id;
};

public readonly isClient = (): boolean | undefined => {
return this._state.value.isClient;
};

public readonly token = (): string | undefined => {
return this._state.value.token;
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Todo esto deberían de ser getters, de la siguiente forma:

public get token(): string {
   return this._state.value.token;
}

Como lo has hecho, para acceder a la propiedad hay que hacer store.token() en vez de store.token, que es mucho más sencillo ya que estamos trabajando puramente como si de una variable se tratase (aunque en realidad sea una función), en vez de una función. En el mundo Java es que no tenemos otra manera que llamarla como si fuesen funciones, pero aquí tenemos esa ventaja :)

Otra manera en la que puedes hacerlo (que es la que acostumbro a utilizar en stores muy grandes donde se mezclan propiedades que son reactivas con con reactivas) es usar los computeds de vue. Así:

public readonly token = computed(() => this._state.value.token);

Así el tipo de TypeScript que tienen es ComputedRef<T> (siendo T el tipo de la variable this._state.value.token), lo cual hace unívoco que dicha variable es reactiva, lo que hace luego mucho más fácil la depuración de errores si vemos que, por algún motivo, algo que debe de reaccionar a un cambio de dicha variable no lo hace.

Otra cosa que te iba a decir es que el token no debería de ser público. Sólamente se va a utilizar dentro de la propia store y aunque durante la ejecución no existe protección de acceso real como ocurre en Java, a nivel de compilación evitamos malas prácticas de usar el token donde no se debe.

Copy link

cloudflare-workers-and-pages bot commented Feb 29, 2024

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7ebed99
Status: ✅  Deploy successful!
Preview URL: https://dda6d808.ocial-app.pages.dev
Branch Preview URL: https://feat-10-auth-store.ocial-app.pages.dev

View logs

@AitorRD AitorRD linked an issue Mar 2, 2024 that may be closed by this pull request
@ferferga ferferga enabled auto-merge (squash) March 3, 2024 18:12
@ferferga ferferga disabled auto-merge March 3, 2024 18:23
adrrf added 2 commits March 3, 2024 19:23
resuelve #10
a la espera del backend para completar la llamada de login y terminar de poner los campos necesarios de usuario
@ferferga ferferga force-pushed the feat/10-auth-store branch from d4e4803 to 7ebed99 Compare March 3, 2024 18:23
@ferferga ferferga enabled auto-merge (squash) March 3, 2024 18:24
Copy link

sonarqubecloud bot commented Mar 3, 2024

Quality Gate Passed Quality Gate passed

Issues
1 New issue
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@ferferga ferferga merged commit b6fd5bd into develop Mar 3, 2024
12 checks passed
@ferferga ferferga deleted the feat/10-auth-store branch March 3, 2024 18:25
ferferga pushed a commit that referenced this pull request Apr 1, 2024
Resuelve #10

A la espera del backend para completar la llamada de login y terminar de poner los campos necesarios de usuario
ferferga pushed a commit that referenced this pull request Apr 1, 2024
Resuelve #10

A la espera del backend para completar la llamada de login y terminar de poner los campos necesarios de usuario
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
code Tasks related to coding enhancement New feature or request frontend Issues related to frontend development
Projects
Development

Successfully merging this pull request may close these issues.

Implementar store de autenticación
2 participants