How to load adal.js in webpack inside Angular 2 (Azure-AD)

后端 未结 2 2026
耶瑟儿~
耶瑟儿~ 2020-12-06 03:16

Inside my NG2 project, if I write:

import adal from \'adal-angular\'; 

it gives me \'adal is undefined\'. Why is that?

I want to u

相关标签:
2条回答
  • 2020-12-06 03:42

    To fix this, you will need to do a number of things:

    npm install adal-angular --save        (=>"@types/adal": "^1.0.22")
    npm install @types/adal --save-dev     (=>"adal-angular": "^1.0.12")
    npm install expose-loader
    

    With those packages installed, you have to do the following:
    inside your component.ts:

    1. write a triple slash to import the typings
      /// <reference path="../../../node_modules/@types/adal/index.d.ts" />
    2. import adal.js and expose it as AuthenticationContext using the expose loader
      import 'expose?AuthenticationContext!../../../node_modules/adal-angular/lib/adal.js';
    3. declare a variable of type AuthenticationContextStatic and assign it value of AuthenticationContext
      let createAuthContextFn: adal.AuthenticationContextStatic = AuthenticationContext;
    4. Now you can initialize the authentication context using the createAuthContextFn
      let config: adal.Config = { clientId : 'test' }; let context = new createAuthContextFn(config);

    5. (Optionally) To handle the callback from AD, write this piece of code inside your bootstrapped component aka AppComponent:
      if (context.isCallback(location.hash)) { var requestInfo = context.getRequestInfo(location.hash); context.saveTokenFromHash(requestInfo); }

    0 讨论(0)
  • 2020-12-06 03:55

    you can also use adal-ts

    npm install adal-ts --save

    0 讨论(0)
提交回复
热议问题