- 确保安装了适当的依赖项:
npm install --save angular-auth-oidc-client @auth0/angular-jwt ngx-cookie-service
- 在app.module.ts中添加AngularAuthOidcClientModule:
...
import { AngularAuthOidcClientModule } from 'angular-auth-oidc-client';
@NgModule({
...
imports: [
BrowserModule,
AppRoutingModule,
AngularAuthOidcClientModule.forRoot({
stsServer: 'https://your-sts-server.com',
redirectUrl: window.location.origin,
clientId: 'angular-client',
scope: 'openid profile email',
responseType: 'code',
silentRenew: true,
useRefreshToken: true,
issValidationOff: false,
autoUserinfo: true,
removeHash: false,
postLogoutRedirectUri: window.location.origin,
renewTimeBeforeTokenExpiresInSeconds: 60,
logLevel: LogLevel.Debug,
}),
],
...
})
export class AppModule { }
- 在app.component.ts中添加以下代码来设置回调:
import { Component, OnInit } from '@angular/core';
import { OidcSecurityService } from 'angular-auth-oidc-client';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(public oidcSecurityService: OidcSecurityService) {}
ngOnInit() {
this.oidcSecurityService.checkAuth().subscribe((isAuthenticated) => {
console.log('app authenticated', isAuthenticated);
const redirect = this.oidcSecurityService.getRedirectUrl();
if (redirect) {
this.router.navigateByUrl(redirect);
}
});
}
}
- 在登录页面添加以下代码:
import { Component } from '@angular/core';
import { OidcSecurityService } from 'angular-auth-oidc-client';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent {
constructor(public oidcSecurityService: OidcSecurityService) {}
login() {
this.oidcSecurityService.author