diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 3ba51a9..df03a2d 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,9 +1,11 @@ import { Routes } from '@angular/router'; import { LoginComponent } from './login/login.component'; import { RegisterComponent } from './register/register.component'; +import { GoogleCallbackComponent } from './google-callback/google-callback.component'; export const routes: Routes = [ { path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }, + { path: 'google-callback', component: GoogleCallbackComponent }, // Add other routes here ]; diff --git a/src/app/auth.service.ts b/src/app/auth.service.ts index 6cdd7db..55d7590 100644 --- a/src/app/auth.service.ts +++ b/src/app/auth.service.ts @@ -18,4 +18,12 @@ export class AuthService { register(name: string, email: string, password: string): Observable { return this.http.post(`${this.apiUrl}/register`, { name, email, password }); } + + getGoogleAuthUrl(): string { + return `${this.apiUrl}/google`; + } + + handleGoogleCallback(code: string): Observable { + return this.http.get(`${this.apiUrl}/google/callback?code=${code}`); + } } diff --git a/src/app/google-callback/google-callback.component.css b/src/app/google-callback/google-callback.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/google-callback/google-callback.component.html b/src/app/google-callback/google-callback.component.html new file mode 100644 index 0000000..1f3bb55 --- /dev/null +++ b/src/app/google-callback/google-callback.component.html @@ -0,0 +1 @@ +

google-callback works!

diff --git a/src/app/google-callback/google-callback.component.spec.ts b/src/app/google-callback/google-callback.component.spec.ts new file mode 100644 index 0000000..7f09124 --- /dev/null +++ b/src/app/google-callback/google-callback.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GoogleCallbackComponent } from './google-callback.component'; + +describe('GoogleCallbackComponent', () => { + let component: GoogleCallbackComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [GoogleCallbackComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GoogleCallbackComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/google-callback/google-callback.component.ts b/src/app/google-callback/google-callback.component.ts new file mode 100644 index 0000000..3288a12 --- /dev/null +++ b/src/app/google-callback/google-callback.component.ts @@ -0,0 +1,30 @@ +// src/app/google-callback/google-callback.component.ts +import { Component, OnInit } from '@angular/core'; +import { AuthService } from '../auth.service'; +import { Router, ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'app-google-callback', + template: '

Loading...

', + styles: [] +}) +export class GoogleCallbackComponent implements OnInit { + constructor( + private authService: AuthService, + private router: Router, + private route: ActivatedRoute + ) {} + + ngOnInit(): void { + this.route.queryParams.subscribe(params => { + console.log("callback-hit"); + const token = params['token']; + if (token) { + localStorage.setItem('token', token); + this.router.navigate(['/']); + } else { + this.router.navigate(['/login']); + } + }); + } +} diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html index a384b03..029ffea 100644 --- a/src/app/login/login.component.html +++ b/src/app/login/login.component.html @@ -1,4 +1,3 @@ -

Login

@@ -9,3 +8,5 @@
+ + diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts index 67d4c44..eade26c 100644 --- a/src/app/login/login.component.ts +++ b/src/app/login/login.component.ts @@ -30,4 +30,8 @@ export class LoginComponent { err => console.error(err) ); } + + googleLogin() { + window.location.href = this.authService.getGoogleAuthUrl(); + } }