1

我正在使用Angular 7开发一个 Web 应用程序,这个应用程序与一个用 dot.net 核心编写的 Web API 后端服务进行通信。

这两个应用程序已部署到 Azure 并已设置其所有配置:资源组、启用 CORS、Azure AD 等...

我现在面临的问题是消耗端点,让我们说做一个正常的获取。我收到一个401 http 错误,这是有道理的。因此,我开始在我的 Angular 应用程序中实现Adal.js,让用户对 Azure Active Directory 进行身份验证,获取令牌并将令牌注入请求标头(在这篇文章之后:Using ADAL.js with Angular4+)。但是,我收到此错误:

adal.services.ts

import { Injectable } from '@angular/core';
import { adal } from 'adal-angular';
import { Observable, Subscriber } from 'rxjs';
import { retry } from 'rxjs/operators';

import { AdalConfigService } from './adal-config.service';

declare var AuthenticationContext: adal.AuthenticationContextStatic;
let createAuthContextFn: adal.AuthenticationContextStatic = AuthenticationContext;

@Injectable({
  providedIn: 'root',
})
export class AdalService {
  private context: adal.AuthenticationContext;
  constructor(private configService: AdalConfigService) {
    this.context = new createAuthContextFn(configService.adalSettings);
  }

错误: 在此处输入图像描述

我已经安装了以下 Adal.js 包: npm install adal-angular npm install @type/adal-angular

有没有人面临类似的问题?非常欢迎任何帮助

4

1 回答 1

0

由于@types/adal已替换为@types/adal-angular,从那时起,导出方式似乎发生了AuthenticationContext变化,现在可以使用 ES6 语法导入,如下所示:

import * as AuthenticationContext from 'adal-angular';

例子

import { Injectable } from '@angular/core';
import { AdalConfigService } from './adal-config.service';
import * as AuthenticationContext from 'adal-angular';

@Injectable()
export class AdalService {
    private context: AuthenticationContext;
    constructor(private configService: AdalConfigService) {
        this.context = new AuthenticationContext(configService.adalSettings);
    }
    login() {
        this.context.login();
    }
}
于 2019-07-18T18:20:35.833 回答