Skip to content

Instantly share code, notes, and snippets.

View sonicoder86's full-sized avatar

Gábor Soós sonicoder86

View GitHub Profile
@sonicoder86
sonicoder86 / hero-detail.component.ts
Created June 24, 2016 10:58
Upgrading to the new Angular 2 router - part 10
// components/hero-detail/hero-detail.component.ts
import { Component } from '@angular/core';
import { CanActivate, ComponentInstruction } from '@angular/router-deprecated';
@Component({ ... })
@CanActivate((next: ComponentInstruction, prev: ComponentInstruction) => {
return isAuthTokenValid();
})
export class HeroDetailComponent { ... }
@sonicoder86
sonicoder86 / auth-guard.ts
Last active August 9, 2016 13:11
Upgrading to the new Angular 2 router - part 11
// auth-guard.ts
import { Injectable } from '@angular/core';
import {
CanActivate,
Router,
ActivatedRouteSnapshot,
RouterStateSnapshot
} from '@angular/router';
import { AuthService } from './services/auth/auth.service';
@sonicoder86
sonicoder86 / routes.ts
Created June 24, 2016 11:02
Upgrading to the new Angular 2 router - part 12
// routes.ts
import { provideRouter, RouterConfig } from '@angular/router';
import { HeroesComponent } from './components/heroes/heroes.component';
import { HeroDetailComponent } from './components/hero-detail/hero-detail.component';
import { LoginComponent } from './components/login/login.component';
import { AuthGuard } from './auth-guard';
export const appRoutes: RouterConfig = [
{ path: '', component: HeroesComponent, terminal: true },
@sonicoder86
sonicoder86 / app.component.ts
Created June 25, 2016 08:37
Authentication in Angular 2 - part 1
// app.component.ts
import { Component } from '@angular/core';
import { RouteConfig, RouterOutlet } from '@angular/router-deprecated';
import { HomeComponent } from './home.component';
import { LoginComponent } from './login.component';
import { ProfileComponent } from './profile.component';
@Component({
selector: 'auth-app',
@sonicoder86
sonicoder86 / user.service.ts
Created June 25, 2016 08:39
Authentication in Angular 2 - part 2
// user.service.ts
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import localStorage from 'localStorage';
@Injectable()
export class UserService {
private loggedIn = false;
constructor(private http: Http) {
@sonicoder86
sonicoder86 / login.component.ts
Last active June 25, 2016 09:13
Authentication in Angular 2 - part 3
// login.component.ts
import { Component } from '@angular/core';
import { Router } from '@angular/router-deprecated';
import { UserService } from './user.service';
@Component({
selector: 'login',
template: `...`
})
@sonicoder86
sonicoder86 / logged-in-router-outlet.ts
Last active June 25, 2016 08:50
Authentication in Angular 2 - part 4
// logged-in-router-outlet.ts
import {
ElementRef, DynamicComponentLoader, AttributeMetadata, Directive, Attribute
} from '@angular/core';
import { Router, RouterOutlet, ComponentInstruction } from '@angular/router-deprecated';
import { UserService } from './user.service';
@Directive({
selector: 'router-outlet'
@sonicoder86
sonicoder86 / app.component.ts
Created June 25, 2016 08:53
Authentication in Angular 2 - part 5
// app.component.ts
...
import { LoggedInRouterOutlet } from './logged-in-router-outlet';
@Component({
selector: 'auth-app',
directives: [LoggedInRouterOutlet],
template: `
<div class="container body-container">
<router-outlet></router-outlet>
@sonicoder86
sonicoder86 / profile.component.ts
Created June 25, 2016 09:01
Authentication in Angular 2 - part 6
// user.service.ts
export function isLoggedIn() {
return !!storage.getAuthToken();
}
// profile.component.ts
import { Component } from '@angular/core';
import { CanActivate } from '@angular/router-deprecated';
import { isLoggedIn } from './user.service';
@sonicoder86
sonicoder86 / app-injector.ts
Created June 25, 2016 09:05
Authentication in Angular 2 - part 7
// app-injector.ts
import { Injector } from '@angular/core';
let appInjectorRef: Injector;
export const appInjector = (injector?: Injector):Injector => {
if (injector) {
appInjectorRef = injector;
}
return appInjectorRef;