Angular
  • Introduction
  • Angular Command
  • Oshop Project
    • Oshop Tips
    • Product Management Module
  • Redux
  • Angular Tips
    • Communicate with Angular components outside of Angular
    • Safe Pipe
    • Highlight attachment file
    • Set CSS background-image value in Angular
  • Angular DatePicker Tips
  • Angular 6 Breadcrumb
Powered by GitBook
On this page
  • Decoupling service module
  • Protect router using auth-guard
  • Redirecting after login
  • Authorization (Store user in firebase)

Was this helpful?

  1. Oshop Project

Oshop Tips

Decoupling service module

  • create service provider

    ng g s auth

  • add to app.module.ts as provider

    providers: [
      AuthService
    ],

Protect router using auth-guard

  • create router guard service

    ng g s auth-guard

  • add to app.module.ts as provider

    providers: [
      AuthGuard
    ],
  • In AuthGuard to implement CanActivate, remember canActivate return Observable[boolean]

  • protect future router { path: 'check-out', component: CheckOutComponent, canActivate: [AuthGuard]}

Redirecting after login

  • Using CanActivate's RouterStateSnapShot to set return Url to queryParam

 this.router.navigate(['/login'], { queryParams: { returnUrl: state.url}});
  • Save returnUrl to localStorage, because Redirect to Google login will lost queryParam

  • Get returnUrl after login and use router to navigate to returnUrl

Authorization (Store user in firebase)

  • Using service for this layer

ng g s services/user

  • add as service provider in app.module.ts

  • create userservice

    constructor(private db: AngularFireDatabase) { }
    
    save(user: firebase.User) {
      this.db.object('/users/' + user.uid).update({
        name: user.displayName,
        email: user.email
      });
    }
PreviousOshop ProjectNextProduct Management Module

Last updated 6 years ago

Was this helpful?