Я пытаюсь внедрить единый вход с помощью ADAL и JWT в ионном приложении.
Я использую Angular 5.2.10 и Ionic v3.
Это мой auth.service.ts:
Я импортирую:
import { Injectable } from '@angular/core';
import { JwtHelperService } from '@auth0/angular-jwt';
import { Platform} from 'ionic-angular';
import { MSAdal, AuthenticationContext, AuthenticationResult } from '@ionic-native/ms-adal';
import { environment as env } from '../environments/environment';
И я почти уверен, что у меня нет проблем с файлом среды, потому что я уже пробовал его в другом приложении.
Тогда у меня проблема с моей функцией аутентификации:
@Injectable()
export class AuthService {
constructor(
private msAdal: MSAdal,
private jwtHelper: JwtHelperService,
private platform: Platform,
) {
console.log("auth.service.ts constructor");
platform.ready().then(() => {
console.log('Activate ADAL logger GSA');
});
}
public async authenticate(): Promise<boolean> {
console.log('GSA authenticate');
await this.platform.ready();
console.log('Called authenticate');
const authContext = this.msAdal.createAuthenticationContext(
env.adAuthority,
false
);
authContext.validateAuthority = false;
// Attempt to authorize user silently
try {
console.log('Trying to authorize user silently');
const silentAuthResult = await authContext.acquireTokenSilentAsync(
env.adResourceUri,
env.adClientId,
undefined
);
console.log('Silent Auth result:', silentAuthResult);
return true;
} catch (err) {
console.log(
'Cannot authorize user silently, trying to launch login process'
);
try {
const authResult = await authContext.acquireTokenAsync(
env.adResourceUri,
env.adClientId,
env.adRedirectUri,
undefined,
undefined
);
console.log('Auth Result:', authResult);
return true;
} catch (err) {
console.error('Cannot authorize user silently. User unauthorized or no connectivity to the authentication provider: ', err);
return false;
}
}
}
Я получаю эту ошибку:
Ошибка: Uncaught (в обещании): TypeError: Невозможно установить свойство 'validateAuthority' из неопределенного
TypeError: Невозможно установить свойство 'validateAuthority' из неопределенного
в AuthenticationContext.set [as validateAuthority] (http://localhost:8100/build/vendor.js:126569:39)
в AuthService. (http://localhost:8100/build/main.js:1407:55)
Может кто-нибудь помочь мне с этим?