2
2
< html >
3
3
< head >
4
4
< title > Quickstart for MSAL JS</ title >
5
- < script src ="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js "> </ script >
5
+ < script src ="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js "> </ script >
6
6
< script src ="https://secure.aadcdn.microsoftonline-p.com/lib/0.2.3/js/msal.js "> </ script >
7
7
< script src ="https://code.jquery.com/jquery-3.2.1.min.js "> </ script >
8
8
</ head >
9
9
10
10
< body >
11
- < h2 > Welcome to MSAL.js Quickstart </ h2 > < br / >
12
- < h4 id ="WelcomeMessage " > </ h4 >
13
- < button id =" SignIn " onclick =" signIn() " > Sign In </ button > < br /> < br />
14
- < pre id ="json "> </ pre >
11
+ < h4 id =" WelcomeMessage " > </ h4 >
12
+ < button id ="SignIn " onclick =" signIn() " > Sign In </ button >
13
+ < br /> < br />
14
+ < pre id ="json "> </ pre >
15
15
16
+ < < < < < < < HEAD
17
+ < script >
18
+ var applicationConfig = {
19
+ clientID : '0813e1d1-ad72-46a9-8665-399bba48c201' , //This is your client ID
20
+ graphScopes : [ "user.read" ] ,
21
+ graphEndpoint : "https://graph.microsoft.com/v1.0/me"
22
+ } ;
23
+ = === ===
16
24
< script >
17
25
// Browser check variables
18
26
var ua = window.navigator.userAgent;
@@ -23,118 +31,124 @@ <h4 id="WelcomeMessage"></h4>
23
31
var isEdge = msedge > 0 ;
24
32
25
33
var applicationConfig = {
26
- clientID : "0813e1d1-ad72-46a9-8665-399bba48c201 " , //This is your client ID
34
+ clientID : "Enter_the_Application_Id_here " , //This is your client ID
27
35
graphScopes : [ "user.read" ] ,
28
36
graphEndpoint : "https://graph.microsoft.com/v1.0/me"
29
37
} ;
38
+ > >>> >>> 1 fbe10f469b303ec16eccd34c22172576ab7759f
30
39
31
- //Pass null for default authority (https://login.microsoftonline.com/common) and tokenReceivedCallback if using popup apis
32
- var myMSALObj = new Msal . UserAgentApplication ( applicationConfig . clientID , null , null , { storeAuthStateInCookie :true , cacheLocation :"localStorage" } ) ;
33
-
34
- function signIn ( ) {
35
- myMSALObj . loginPopup ( applicationConfig . graphScopes ) . then ( function ( idToken ) {
36
- //Login Success
37
- showWelcomeMessage ( ) ;
38
- acquireTokenAndCallMSGraph ( ) ;
39
- } , function ( error ) {
40
- console . log ( error ) ;
41
- } ) ;
42
- }
43
-
44
- function signOut ( ) {
45
- myMSALObj . logout ( ) ;
46
- }
40
+ //Pass null for default authority (https://login.microsoftonline.com/common)
41
+ var myMSALObj = new Msal . UserAgentApplication ( applicationConfig . clientID , null , acquireTokenRedirectCallBack ,
42
+ { storeAuthStateInCookie : true , cacheLocation : "localStorage" } ) ;
47
43
48
- function acquireTokenAndCallMSGraph ( ) {
49
- //Call acquireTokenSilent (iframe) to obtain a token for Microsoft Graph
50
- myMSALObj . acquireTokenSilent ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
51
- callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
52
- } , function ( error ) {
53
- // Call acquireTokenPopup (popup window) in case of acquireToken Failure
54
- if ( error . indexOf ( "consent_required" ) !== - 1 || error . indexOf ( "interaction_required" ) !== - 1 ) {
55
- myMSALObj . acquireTokenPopup ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
56
- callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
57
- } , function ( error ) {
58
- } ) ;
59
- }
60
- } ) ;
61
- }
44
+ function signIn ( ) {
45
+ myMSALObj . loginPopup ( applicationConfig . graphScopes ) . then ( function ( idToken ) {
46
+ //Login Success
47
+ showWelcomeMessage ( ) ;
48
+ acquireTokenPopupAndCallMSGraph ( ) ;
49
+ } , function ( error ) {
50
+ console . log ( error ) ;
51
+ } ) ;
52
+ }
53
+
54
+ function signOut ( ) {
55
+ myMSALObj . logout ( ) ;
56
+ }
62
57
63
- function callMSGraph ( theUrl , accessToken , callback ) {
64
- var xmlHttp = new XMLHttpRequest ( ) ;
65
- xmlHttp . onreadystatechange = function ( ) {
66
- if ( this . readyState == 4 && this . status == 200 )
67
- callback ( JSON . parse ( this . responseText ) ) ;
58
+ function acquireTokenPopupAndCallMSGraph ( ) {
59
+ //Call acquireTokenSilent (iframe) to obtain a token for Microsoft Graph
60
+ myMSALObj . acquireTokenSilent ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
61
+ callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
62
+ } , function ( error ) {
63
+ console . log ( error ) ;
64
+ // Call acquireTokenPopup (popup window) in case of acquireTokenSilent failure due to consent or interaction required ONLY
65
+ if ( error . indexOf ( "consent_required" ) !== - 1 || error . indexOf ( "interaction_required" ) !== - 1 || error . indexOf ( "login_required" ) !== - 1 ) {
66
+ myMSALObj . acquireTokenPopup ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
67
+ callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
68
+ } , function ( error ) {
69
+ console . log ( error ) ;
70
+ } ) ;
68
71
}
69
- xmlHttp . open ( "GET" , theUrl , true ) ; // true for asynchronous
70
- xmlHttp . setRequestHeader ( 'Authorization' , 'Bearer ' + accessToken ) ;
71
- xmlHttp . send ( ) ;
72
- }
72
+ } ) ;
73
+ }
73
74
74
- function graphAPICallback ( data ) {
75
- //Display user data on DOM
76
- var divWelcome = document . getElementById ( 'WelcomeMessage' ) ;
77
- document . getElementById ( "json" ) . innerHTML = JSON . stringify ( data , null , 2 ) ;
75
+ function callMSGraph ( theUrl , accessToken , callback ) {
76
+ var xmlHttp = new XMLHttpRequest ( ) ;
77
+ xmlHttp . onreadystatechange = function ( ) {
78
+ if ( this . readyState == 4 && this . status == 200 )
79
+ callback ( JSON . parse ( this . responseText ) ) ;
78
80
}
81
+ xmlHttp . open ( "GET" , theUrl , true ) ; // true for asynchronous
82
+ xmlHttp . setRequestHeader ( 'Authorization' , 'Bearer ' + accessToken ) ;
83
+ xmlHttp . send ( ) ;
84
+ }
85
+
86
+ function graphAPICallback ( data ) {
87
+ //Display user data on DOM
88
+ var divWelcome = document . getElementById ( 'WelcomeMessage' ) ;
89
+ divWelcome . innerHTML += " to Microsoft Graph API!!" ;
90
+ document . getElementById ( "json" ) . innerHTML = JSON . stringify ( data , null , 2 ) ;
91
+ }
92
+
93
+ function showWelcomeMessage ( ) {
94
+ var divWelcome = document . getElementById ( 'WelcomeMessage' ) ;
95
+ divWelcome . innerHTML += 'Welcome ' + myMSALObj . getUser ( ) . name ;
96
+ var loginbutton = document . getElementById ( 'SignIn' ) ;
97
+ loginbutton . innerHTML = 'Sign Out' ;
98
+ loginbutton . setAttribute ( 'onclick' , 'signOut();' ) ;
99
+ }
79
100
80
- function showWelcomeMessage ( ) {
81
- var divWelcome = document . getElementById ( 'WelcomeMessage' ) ;
82
- divWelcome . innerHTML += 'Welcome ' + myMSALObj . getUser ( ) . name + " to Microsoft Graph API!!" ;
83
- var loginbutton = document . getElementById ( 'SignIn' ) ;
84
- loginbutton . innerHTML = 'Sign Out' ;
85
- loginbutton . setAttribute ( 'onclick' , 'signOut();' ) ;
101
+ // This function can be removed if you do not need to support IE
102
+ function acquireTokenRedirectAndCallMSGraph ( ) {
103
+ //Call acquireTokenSilent (iframe) to obtain a token for Microsoft Graph
104
+ myMSALObj . acquireTokenSilent ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
105
+ callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
106
+ } , function ( error ) {
107
+ console . log ( error ) ;
108
+ //Call acquireTokenRedirect in case of acquireToken Failure
109
+ if ( error . indexOf ( "consent_required" ) !== - 1 || error . indexOf ( "interaction_required" ) !== - 1 || error . indexOf ( "login_required" ) !== - 1 ) {
110
+ myMSALObj . acquireTokenRedirect ( applicationConfig . graphScopes ) ;
111
+ }
112
+ } ) ;
113
+ }
114
+
115
+ function acquireTokenRedirectCallBack ( errorDesc , token , error , tokenType )
116
+ {
117
+ if ( tokenType === "access_token" )
118
+ {
119
+ callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
120
+ } else {
121
+ console . log ( "token type is:" + tokenType ) ;
122
+ }
123
+
124
+ }
125
+
126
+ // Browser check variables
127
+ var ua = window . navigator . userAgent ;
128
+ var msie = ua . indexOf ( 'MSIE ' ) ;
129
+ var msie11 = ua . indexOf ( 'Trident/' ) ;
130
+ var msedge = ua . indexOf ( 'Edge/' ) ;
131
+ var isIE = msie > 0 || msie11 > 0 ;
132
+ var isEdge = msedge > 0 ;
133
+
134
+ //If you support IE, our recommendation is that you sign-in using Redirect APIs
135
+ //If you as a developer are testing using Edge InPrivate mode, please add "isEdge" to the if check
136
+ if ( ! isIE ) {
137
+ if ( myMSALObj . getUser ( ) ) { // avoid duplicate code execution on page load in case of iframe and popup window.
138
+ showWelcomeMessage ( ) ;
139
+ acquireTokenPopupAndCallMSGraph ( ) ;
86
140
}
87
-
88
- /**
89
- if (myMSALObj.getUser() && !myMSALObj.isCallback(window.location.hash)) {// avoid duplicate code execution on page load in case of iframe and popup window.
90
- showWelcomeMessage();
91
- acquireTokenAndCallMSGraph();
92
- }
93
- **/
94
-
95
- // Uncomment the above code and delete the below code if you are not using browser detection
96
-
97
- if ( isIE ) {
98
- document . getElementById ( "SignIn" ) . onclick = function ( ) {
99
- myMSALObj . loginRedirect ( applicationConfig . graphScopes ) ;
100
- } ;
101
- if ( myMSALObj . getUser ( ) && ! myMSALObj . isCallback ( window . location . hash ) ) { // avoid duplicate code execution on page load in case of iframe and popup window.
102
- showWelcomeMessage ( ) ;
103
- acquireTokenRedirectAndCallMSGraph ( ) ;
104
- }
105
- }
106
- // Uncomment this if you are testing in Edge InPrivate, or delete
107
- /**
108
- else if(isEdge) {
109
- document.getElementById("SignIn").onclick = function () {
110
- myMSALObj.loginRedirect(applicationConfig.graphScopes);
111
- };
112
- if (myMSALObj.getUser() && !myMSALObj.isCallback(window.location.hash)) {// avoid duplicate code execution on page load in case of iframe and popup window.
113
- showWelcomeMessage();
114
- acquireTokenRedirectAndCallMSGraph();
115
- }
116
- }
117
- **/
118
- else {
119
- if ( myMSALObj . getUser ( ) && ! myMSALObj . isCallback ( window . location . hash ) ) { // avoid duplicate code execution on page load in case of iframe and popup window.
120
- showWelcomeMessage ( ) ;
121
- acquireTokenAndCallMSGraph ( ) ;
122
- }
123
- }
124
-
125
- // This function can be removed if browser detection isn't needed
126
- function acquireTokenRedirectAndCallMSGraph ( myMSALObj ) {
127
- //Call acquireTokenSilent (iframe) to obtain a token for Microsoft Graph
128
- myMSALObj . acquireTokenSilent ( applicationConfig . graphScopes ) . then ( function ( accessToken ) {
129
- callMSGraph ( applicationConfig . graphEndpoint , accessToken , graphAPICallback ) ;
130
- } , function ( error ) {
131
- //Call acquireTokenRedirect in case of acquireToken Failure
132
- if ( error . indexOf ( "consent_required" ) !== - 1 || error . indexOf ( "interaction_required" ) !== - 1 ) {
133
- myMSALObj . acquireTokenRedirect ( applicationConfig . graphScopes ) ;
134
- }
135
- } ) ;
141
+ }
142
+ else {
143
+ document . getElementById ( "SignIn" ) . onclick = function ( ) {
144
+ myMSALObj . loginRedirect ( applicationConfig . graphScopes ) ;
145
+ } ;
146
+
147
+ if ( myMSALObj . getUser ( ) && ! myMSALObj . isCallback ( window . location . hash ) ) { // avoid duplicate code execution on page load in case of iframe and popup window.
148
+ showWelcomeMessage ( ) ;
149
+ acquireTokenRedirectAndCallMSGraph ( ) ;
136
150
}
137
-
138
- </ script >
151
+ }
152
+ </ script >
139
153
</ body >
140
154
</ html>
0 commit comments