Я работаю над приложением Angular 9, которое использует OneLogin для целей аутентификации.
В файле auth.component.ts у меня есть служба аутентификации, которую я использую в компонент аутентификации:
import { AuthService } from 'path/to/core/services/auth/auth.service';
import { AuthApiService } from 'path/to/core/core/services/auth/auth-api.service';
import { Component, OnInit } from '@angular/core';
import { authCodeFlowConfig } from 'path/to/config/onelogin-api/config-auth.component';
@Component({
selector: 'auth',
templateUrl: './assets/auth.component.html',
styleUrls: ['./assets/auth.component.scss']
})
export class AuthComponent implements OnInit{
constructor(private _authService: AuthService) {
}
startAuthentication() {
this._authService.startAuthentication();
}
ngOnInit(): void {
this.startAuthentication();
}
}
В auth.service.ts у меня есть метод startAuthentication()
:
startAuthentication(): Observable<any> {
const {issuer, redirectUri, clientId, responseType, scope} = authCodeFlowConfig;
const url = `someURL`;
this.redirectTo(url);
return of(false);
}
redirectTo(url: string): void {
window.location.href = url;
}
В файле app.module.ts у меня есть этот массив маршрутов:
import { AuthService } from './core/services/auth/auth.service';
// more imports
const appRoutes: Routes = [
{
path : 'myroute',
redirectTo: 'myroute'
},
{
path: 'auth',
component: AuthComponent
}
];
Другими словами, я хочу, чтобы приложение достигло определенного URL при успешном входе в систему и в противном случае перенаправило бы на форму входа.
Что я хочу случается так: когда вход в систему успешен - другими словами, когда startAuthentication()
выполняется - должно быть перенаправление на myroute
.
Я пытался {path: 'auth', component: AuthComponent, startAuthentication:[AuthService]}
бит, он терпит неудачу.
Что я делаю не так?