Skip to content

Instantly share code, notes, and snippets.

View ivanvs's full-sized avatar

Ivan Vasiljević ivanvs

View GitHub Profile
@ivanvs
ivanvs / user.service.ts
Created May 17, 2017 10:25
User service from demo application that explains Facebook login
@Injectable()
export class UserService {
constructor(private http: AuthHttp) {
FB.init({
appId : ‘YOUR-APP-ID-HERE’,
status : false, // the SDK will attempt to get info about the current user immediately after init
cookie : false, // enable cookies to allow the server to access
// the session
xfbml : false, // With xfbml set to true, the SDK will parse your page's DOM to find and initialize any social plugins that have been added using XFBML
@ivanvs
ivanvs / index.html
Last active May 17, 2017 10:35
Page that loads Angular 2 application and Facebook Javascript SDK. Page is used in demo application that explains Facebook logging
<!doctype html>
<html>
<head>
<meta charset="utf-8" >
<title>AngularBootstrapDemo</title>
<base href=”/”>
<meta name=”viewport” content="width=device-width, initial-scale=1">
<link rel=”icon” type="image/x-icon” href=”favicon.ico">
<script src="//connect.facebook.net/en_US/sdk.js"></script>
</head>
@ivanvs
ivanvs / auth.guard.ts
Created May 17, 2017 17:33
Guard that checks if user is logged in. This is part of Angular 2 demo application that demonstrates Facebook login
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private userService: UserService, private router: Router) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.checkLogin();
}
checkLogin(): Promise<boolean> {
@ivanvs
ivanvs / anounymous.guard.ts
Created May 17, 2017 17:36
Guard that checks if user is not logged in. This is part of Angular 2 demo application that demonstrates Facebook login
@Injectable()
export class AnonymousGuard implements CanActivate {
constructor(private userService: UserService, private router: Router) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.checkLogin();
}
checkLogin(): Promise<boolean> {
@ivanvs
ivanvs / login.component.ts
Created May 17, 2017 18:07
Component for logging page. This is part of Angular 2 application that demonstrate Facebook login
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.sass']
})
export class LoginComponent implements OnInit {
constructor(private userService: UserService, private router: Router) { }
ngOnInit() {
@ivanvs
ivanvs / login.component.html
Created May 17, 2017 18:40
Template for logging page. This is part of Angular 2 application that demonstrate Facebook login
<div class="navbar navbar-default navbar-fixed-top">
</div>
<div class="page-header"></div>
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-7 col-sm-6">
<div class="panel panel-default">
@ivanvs
ivanvs / dashboard.component.ts
Created May 17, 2017 18:44
Dashboard component, that user can see only if it is logged in. This is part of Angular 2 application that demonstrate Facebook login
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.sass']
})
export class DashboardComponent implements OnInit {
public currentUser : any = {};
constructor(private userService: UserService, private router: Router) { }
@ivanvs
ivanvs / dashboard.component.html
Created May 17, 2017 18:45
Template for dashboard page. This is part of Angular 2 application that demonstrate Facebook login
<div class="navbar navbar-default navbar-fixed-top">
<ul class="nav navbar-nav navbar-right">
<li role="menuitem"><a class="dropdown-item" (click)="logout()">Logout</a></li>
</ul>
</div>
<div class="page-header"></div>
<div class="container">
@ivanvs
ivanvs / app.routing.module.ts
Created May 17, 2017 19:14
Routing configuration for Angular 2 application that is demoing Facebook authorization
const appRoutes: Routes = [
{
path: 'welcome',
component: LoginComponent,
canActivate: [AnonymousGuard]
},
{
path: 'dashboard',
component: DashboardComponent,
canActivate: [AuthGuard]
@ivanvs
ivanvs / getAuthHttp.ts
Created May 17, 2017 19:16
Function that is used for fetching and serializing token to header
export function getAuthHttp(http: Http) {
return new AuthHttp(new AuthConfig({
headerName: 'x-auth-token',
noTokenScheme: true,
noJwtError: true,
globalHeaders: [{'Accept': 'application/json'}],
tokenGetter: (() => localStorage.getItem('id_token')),
}), http);
}