Перенаправить страницу в Google OAuth - PullRequest
0 голосов
/ 11 июня 2019

Я относительно плохо знаком со средним стеком. Я внедряю функцию единого входа 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...