Preparación de vistas para login y registro
Clase 60 de 80 • Curso de Angular 4
Contenido del curso
Introducción a Angular 4
Setup del Ambiente de Trabajo
Conceptos Básicos
- 9

Para qué nos sirven los Módulos y Componentes
08:10 min - 10

Tipos de Data Binding y String Interpolation
05:05 min - 11

Property Binding
06:04 min - 12

Event Binding
03:04 min - 13

ngModel y two way binding en Angular
05:12 min - 14

Directivas en Angular 4 y ngFor
07:39 min - 15

Cómo usar ngIf en Angular 4.0
03:04 min - 16

Instalando librerías con NPM (Google Maps)
06:48 min
Directivas
Angular UI
Ruteo
- 24

Qué hace el router en Angular 4
03:11 min - 25

Implementación de Rutas en el Proyecto
07:36 min - 26

Href vs router link: navegación angular
02:27 min - 27

Resaltando el link activo con CSS para indicar visualmente en que componente nos encontramos
01:53 min - 28

Parámetros de ruta con routerLink en Angular
06:01 min - 29

Parámetros tipo Query
03:53 min - 30

Creando una vista de detalle para el proyecto
09:06 min - 31

Página de contacto Angular desde cero
07:45 min
Servicios
- 32

Servicios en Angular para compartir datos
00:58 min - 33

Creando nuestro propio servicio
07:11 min - 34

Configurando Firebase en nuestro proyecto
05:12 min - 35

Guardando Records en Firebase
12:20 min - 36

Obteniendo records desde Firebase
08:40 min - 37

Obteniendo coordenadas usando Geocoding
13:45 min - 38

Reto: Crear una vista para editar records
09:29 min - 39

Mostrando marcadores en el Mapa de Google
03:02 min
Conexión Remota (Http y Sockets)
Pipes
Animaciones en Angular
Testing en Angular
Autenticación y Protección de Rutas
- 59

Cómo funcionan los JSON Web Tokens
03:05 min - 60

Preparación de vistas para login y registro
Viendo ahora - 61

Registrando usuarios
07:29 min - 62

Loggeando usuarios
07:18 min - 63

Guardias canActivate en Angular: Proteger rutas con autenticación
11:09 min - 64

Cómo integrar Facebook login con Firebase
09:08 min - 65

Logout en Angular con Firebase
05:28 min
RxJS
- 66

Cómo funciona RxJS con metáfora de oficina
02:09 min - 67

Mostrar email del usuario logueado en Angular
06:32 min - 68

Uso de los Observables
04:30 min - 69

Cómo implementar type ahead con Observables y RxJS
10:43 min - 70

Implementar formularios reactivos con type ahead
07:58 min - 71

Cómo rellenar campos automáticamente con Google
01:28 min
Publicando nuestro proyecto
Fin del curso
Sesiones en vivo
Contenido Bonus
Implementar autenticación en Angular con Json Web Tokens (JWT) arranca con una base sólida: dos páginas de login y registro, rutas claras y un servicio centralizado de autorización. A continuación se muestra cómo estructurar componentes, maquetar con Bootstrap y preparar un servicio reutilizable, dejando lista la integración posterior con Firebase.
¿Qué construimos para la autenticación con Angular y JWT?
Empezamos creando dos componentes: login y registro. Se duplicó el componente de contacto y se renombraron archivos y selectores para cada caso. Luego, se configuraron rutas en AppModule y se añadió una barra de navegación con enlaces a ambos formularios usando routerLink. Finalmente, se creó un autorizacionService con métodos login y registro, inyectado en los componentes para probar su ejecución con console.log.
- Habilidades practicadas: creación de componentes en Angular. Configuración de rutas. Maquetación con Bootstrap. Inyección de dependencias. Uso de services y funciones flecha. Pruebas con
console.log. - Conceptos clave: Json Web Tokens (JWT). routerLink.
@Injectable. navbar-right. Clases de Bootstrap como container, row, col-md-4, col-md-offset-4, well, btn, btn-primary, btn-default, btn-block.
¿Cómo crear las páginas de login y registro con Bootstrap?
Primero se generó el componente de login, ajustando selector, template y ruta. Luego se maquetó un formulario centrado con la grilla de Bootstrap, y se repitió el proceso para registro.
¿Cómo configurar el componente de login?
- Duplicar el componente existente y renombrarlo a
LoginComponent. - Actualizar selector a
app-loginy el templateUrl alogin.component.html.
// login.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-login',
templateUrl: './login.component.html'
})
export class LoginComponent {}
¿Cómo maquetar el formulario con Bootstrap?
- Centrar el formulario con
col-md-4ycol-md-offset-4dentro de uncontaineryrow. - Usar
form-controlpara los campos y botones conbtn.
<!-- login.component.html -->
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="well">
<h1>login</h1>
<label>email</label>
<input type="email" class="form-control">
<br>
<label>contraseña</label>
<input type="password" class="form-control">
<hr>
<a class="btn btn-primary btn-block">login</a>
<a class="btn btn-default btn-block">cancelar</a>
</div>
</div>
</div>
</div>
Para registro, se duplicó el de login, se renombraron archivos y referencias, y se cambió el título a “registrarse”.
// registro.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-registro',
templateUrl: './registro.component.html'
})
export class RegistroComponent {}
¿Cómo declarar rutas y un servicio de autorización reutilizable?
Se añadieron rutas en AppModule para login y registro. Luego, se incorporó una navbar con enlaces a la derecha y se creó un service autorizacion.service.ts con métodos mínimos para probar el flujo.
¿Cómo definir rutas en AppModule?
- Agregar rutas
loginyregistrocon sus componentes. - Incluir componentes en
declarationsy el servicio enproviders.
// app.module.ts (fragmento)
import { RouterModule, Routes } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { RegistroComponent } from './registro/registro.component';
import { AutorizacionService } from './services/autorizacion.service';
const routes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: 'registro', component: RegistroComponent }
];
@NgModule({
declarations: [LoginComponent, RegistroComponent],
imports: [RouterModule.forRoot(routes)],
providers: [AutorizacionService]
})
export class AppModule {}
¿Cómo añadir enlaces en la barra de navegación?
- Usar una lista en la navbar con la clase navbar-right para alinear a la derecha.
- Enlaces con routerLink hacia
/loginy/registro.
<!-- app.component.html (fragmento) -->
<ul class="nav navbar-nav navbar-right">
<li><a routerLink="/login">login</a></li>
<li><a routerLink="/registro">registro</a></li>
</ul>
¿Cómo crear e inyectar el servicio de autorización?
- Declarar
AutorizacionServicecon@Injectable(). - Implementar métodos
loginyregistrocon funciones flecha yconsole.log. - Inyectar el servicio en los constructores de los componentes y llamar a los métodos con datos de prueba.
// services/autorizacion.service.ts
import { Injectable } from '@angular/core';
@Injectable()
export class AutorizacionService {
public login = (email: string, password: string) => {
console.log('método login');
};
public registro = (email: string, password: string) => {
console.log('método registro');
};
}
// login.component.ts (uso del servicio)
constructor(private autorizacionService: AutorizacionService) {
this.autorizacionService.login('demo@email.com', '123456');
}
// registro.component.ts (uso del servicio)
constructor(private autorizacionService: AutorizacionService) {
this.autorizacionService.registro('demo@email.com', '123456');
}
Con esto quedan listas las vistas, las rutas, la navbar y el service para avanzar al registro de usuarios con Firebase en el siguiente paso.
¿Tienes dudas sobre la estructura, las rutas o el servicio? Cuéntalo en los comentarios y comparte qué parte te gustaría profundizar a continuación.