У меня есть сервис, который я установил как инъецируемый, у которого есть свойство, которое я хочу разделить между двумя компонентами. каждый компонент имеет отдельный маршрут
вот мой сервис:
import { Injectable } from '@angular/core';
import { OAuthService, JwksValidationHandler } from 'angular-oauth2-oidc';
import { authConfig } from './sso.config';
import { HttpClient} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class AuthorizeService {
private isAuth: boolean;
constructor(private oauthService: OAuthService, private http: HttpClient) {
console.log('init services');
}
setIsAuth(value: boolean)
{
this.isAuth = value;
}
getIsAuth()
{
return this.isAuth;
}
}
Правильно, которым я хочу поделиться, является isAuth, я добавил сервис в качестве поставщика к app.model.ts
@NgModule({
declarations: [
AppComponent,
HomeComponent,
LoginComponent
],
imports: [
BrowserModule,
RouterModule,
AppRoutingModule,
HttpClientModule,
OAuthModule.forRoot()
],
providers: [{
provide: HTTP_INTERCEPTORS,
useClass:TokeInterceptorService,
multi: true
}, AuthorizeService],
bootstrap: [AppComponent]
})
export class AppModule { }
вот 2 компонента 1. домашний компонент, который устанавливает значение true
import { Component, OnInit } from '@angular/core';
import { AuthorizeService} from '../authorize.service'
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor(private authorizeService: AuthorizeService) { }
ngOnInit() {
this.authorizeService.setIsAuth(true);
}
}
2. второй компонент, компонент входа в систему просто отображает значение isAuth на данный момент.
import { Component, OnInit } from '@angular/core';
import { AuthorizeService} from '../authorize.service'
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private authorizeService: AuthorizeService) {
}
ngOnInit() {
console.log('is auth ', this.authorizeService.getIsAuth());
}
}
есть ли определенный c способ перехода от домашнего компонента к компоненту входа в систему, чтобы служба не могла получить снова инициализирован?
, потому что, когда я перехожу на localhost: 4200 / login, isAuth сбрасывается, а служба повторно инициализируется.
Я пытаюсь реализовать аутентификацию OpenIdConnect, и компонент / login является моим перенаправлением URI, поэтому я хочу убедиться, что мои свойства авторизации являются глобальными для моего приложения.
Возможно, что-то не хватает, может Вы помогаете?