2017-11-13 22 views
0

내 응용 프로그램에서 Azure Active Directory 인증을 얻으려고합니다.이온 - 프레임 워크 응용 프로그램에서 하늘색 광고 권한 부여 흐름을 얻을 수 없습니다.

나는 Windows documentation

가 나는 또한 응용 프로그램을 작성에있는 코드 Ionicframework documentation

HTML 요소를 호출 로그인() 추가 사용하여 내 푸른 디렉토리 응용 프로그램 설정을위한 지침을 따랐다 :

<button ion-button (click)="login()">Login</button> 

내 코드 : home.ts

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { ToastController } from 'ionic-angular'; 

import { MSAdal, AuthenticationContext, AuthenticationResult } from '@ionic-native/ms-adal'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    ready = false; 

    authority = "https://login.microsoftonline.com/common"; 
    redirectUri = "http://IonicAuthenticationTest"; 
    resourceUri = "https://graph.windows.net"; 
    clientId = "Left out application id for security reasons"; 
    graphApiVersion = "2013-11-08"; 
    authContext : AuthenticationContext; 


    constructor(public navCtrl: NavController, private msAdal: MSAdal, private tc: ToastController) { 
    this.authContext = this.msAdal.createAuthenticationContext(this.authority); 

    } 

    ionViewDidLoad() { 
    this.ready = true; 
    } 

    login() { 
    this.authContext.acquireTokenAsync(this.resourceUri, this.clientId, this.redirectUri) 
    .then((authResponse: AuthenticationResult) => { 
     console.log('Token is' , authResponse.accessToken); 
     console.log('Token will expire on', authResponse.expiresOn); 
    }) 
    .catch((e: any) => console.log('Authentication failed', e)); 
    } 

} 

ionic pro를 사용하여 응용 프로그램을 빌드하고 테스트하십시오. 기본적으로 로그인 버튼을 클릭하면 아무 일도 일어나지 않고 브라우저가 열리거나 아무것도 표시되지 않습니다. 정의되지 않은 오류가있는 'catch'로 곧바로 이동합니다 ...

무엇이 누락 되었습니까?

남녀 모두에게 도움을 주셔서 감사합니다.

+0

내 AuthorizationContext 내가 생각하는 정의되지 않은 상태로 유지 : 이있는 내가 토큰 acquring 전에 authContext를 로그인 할 때 내가 무엇을 얻을 : '[예외 : 형식 오류 : AuthenticationContext.get에서 정의되지 않은의 특성을 읽을 수 없습니다 '권한'[권한으로] ' –

답변

0

브라우저에서 Ionic View/Ionic Pro를 테스트 할 수 없습니다. 에뮬레이터 또는 실제 장치에서 테스트해야합니다.