Я относительно плохо знаком со средним стеком. Я внедряю функцию единого входа Google в свое приложение. Я уже определил маршрут в серверной части, используя паспорт.
app.get("/auth/google", passport.authenticate("google",{
scope:['https://www.googleapis.com/auth/plus.login']
}));
app.get("/auth/google/callback", passport.authenticate("google",{
failureRedirect: "api/auth/google", successRedirect:
"/api/students"
}));
Так что, если я запускаю этот API прямо из браузера, что-то вроде:
http://localhost:3000/auth/google
все работает хорошо, меня перенаправили на страницу входа в Google.
Теперь в моем интерфейсе, использующем Angular 7, у меня есть кнопка, и когда я нажимаю на нее, я предполагаю, что она будет работать с тем же API. Однако, это не сработало, кнопка фактически запускает службу и регистрирует сообщение на консоли, но не перенаправляет меня на страницу входа в Google. Может кто-нибудь сказать, что мне здесь не хватает?
Заранее спасибо!
Мой сервис
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Student } from '../interfaces/student';
import { Tutor } from '../interfaces/tutor';
import { Observable, throwError } from 'rxjs';
import {catchError, retry } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class StudentService {
_student_url = "http://localhost:3000/api/student/";
_api = "http://localhost:3000/api/"
constructor(private http:HttpClient){ }
login():Observable<any>{
console.log("login")
return this.http.get("http://localhost:3000/auth/google");
}
login.component.ts:
import { Component, OnInit } from '@angular/core';
import {Router} from '@angular/router';
import { StudentService} from '../services/student.service'
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
title = 'Seattle University Tutors';
suId:string = "";
constructor(private router: Router, private studentService: StudentService) {
}
redirectGoogle(){
this.studentService.login();
}
ngOnInit() {
}
}
HTML-код:
<div>
<button (click)="redirectGoogle()" type="button" class="btn btn-primary" > Google </button>
</div>