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 / boot.ts
Created June 25, 2016 09:06
Authentication in Angular 2 - part 8
// boot.ts
import { bootstrap } from '@angular/platform-browser-dynamic';
import { ComponentRef } from '@angular/core';
import { HTTP_PROVIDERS } from '@angular/http';
import { ROUTER_PROVIDERS } from '@angular/router-deprecated';
import { AppComponent } from './app.component';
import { UserService } from './user.service';
import { appInjector } from './app-injector';
@sonicoder86
sonicoder86 / can-activate-private-metadata.ts
Created June 25, 2016 09:09
Authentication in Angular 2 - part 9
// can-activate-private-metadata.ts
import { Router } from '@angular/router-deprecated';
import { makeDecorator } from '@angular/core/src/util/decorators';
import { CanActivate as CanActivateMetadata }
from '@angular/router-deprecated/src/lifecycle/lifecycle_annotations_impl';
import { appInjector } from './app-injector';
import { UserService } from './user.service';
class PrivateMetadata extends CanActivateMetadata {
@sonicoder86
sonicoder86 / profile.service.ts
Created June 25, 2016 09:11
Authentication in Angular 2 - part 10
// profile.service.ts
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import localStorage from 'localStorage';
@Injectable()
export class ProfileService {
constructor(private http: Http) {}
getProfile() {
@sonicoder86
sonicoder86 / app.component.ts
Last active September 1, 2016 19:33
Angular 2 authentication revisited - part 1
// app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'auth-app',
template: `
<div class="container body-container">
<router-outlet></router-outlet>
</div>
`
@sonicoder86
sonicoder86 / app.routes.ts
Last active September 1, 2016 20:38
Angular 2 authentication revisited - part 2
// app.routes.ts
import { HomeComponent } from './home.component';
import { LoginComponent } from './login.component';
import { ProfileComponent } from './profile.component';
export const routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'profile', component: ProfileComponent }
];
@sonicoder86
sonicoder86 / boot.ts
Last active October 22, 2017 09:46
Angular 2 authentication revisited - part 3
// boot.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { routes } from './app.routes';
@sonicoder86
sonicoder86 / user.service.ts
Last active October 22, 2017 09:44
Angular 2 authentication revisited - part 4
// user.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class UserService {
private loggedIn = false;
constructor(private http: HttpClient) {
this.loggedIn = !!localStorage.getItem('auth_token');
@sonicoder86
sonicoder86 / login.component.ts
Created July 13, 2016 14:50
Angular 2 authentication revisited - part 5
// login.component.ts
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { UserService } from './user.service';
@Component({
selector: 'login',
template: `...`
})
@sonicoder86
sonicoder86 / logged-in.guard.ts
Created July 14, 2016 18:37
Angular 2 authentication revisited - part 6
// logged-in.guard.ts
import { Injectable } from '@angular/core';
import { Router, CanActivate } from '@angular/router';
import { UserService } from './user.service';
@Injectable()
export class LoggedInGuard implements CanActivate {
constructor(private user: UserService) {}
canActivate() {
@sonicoder86
sonicoder86 / app.routes.ts
Last active September 1, 2016 20:39
Angular 2 authentication revisited - part 7
// app.routes.ts
...
import { LoggedInGuard } from 'logged-in.guard';
export const routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'profile', component: ProfileComponent, canActivate: [LoggedInGuard] }
];