Skip to content

Commit ff47151

Browse files
committed
remove broadcast listener
1 parent 55d7355 commit ff47151

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

2-Authorization-I/1-call-graph/SPA/src/app/graph.service.ts

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { Injectable } from '@angular/core';
2-
import { Subject } from 'rxjs';
3-
import { filter, takeUntil } from 'rxjs/operators';
4-
import { AccountInfo, AuthenticationResult, InteractionRequiredAuthError, InteractionType, EventType, EventMessage } from "@azure/msal-browser";
5-
import { MsalService, MsalBroadcastService } from '@azure/msal-angular';
2+
import { AccountInfo, AuthenticationResult, InteractionRequiredAuthError, InteractionType } from "@azure/msal-browser";
3+
import { MsalService } from '@azure/msal-angular';
64
import { Client, AuthenticationProvider, AuthenticationProviderOptions } from '@microsoft/microsoft-graph-client';
75

86

@@ -17,7 +15,7 @@ export interface ProviderOptions extends AuthenticationProviderOptions {
1715
})
1816
export class GraphService {
1917

20-
constructor(private authService: MsalService, private msalBroadcastService: MsalBroadcastService) { }
18+
constructor(private authService: MsalService) { }
2119

2220
/**
2321
* Returns a graph client object with the provided token acquisition options
@@ -32,7 +30,7 @@ export class GraphService {
3230
* For more information, visit: https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/docs/CreatingClientInstance.md
3331
*/
3432
let clientOptions = {
35-
authProvider: new MyAuthenticationProvider(providerOptions, this.authService, this.msalBroadcastService),
33+
authProvider: new MsalAuthenticationProvider(providerOptions, this.authService),
3634
};
3735

3836
const graphClient = Client.initWithMiddleware(clientOptions);
@@ -45,15 +43,13 @@ export class GraphService {
4543
* This class implements the IAuthenticationProvider interface, which allows a custom auth provider to be
4644
* used with the Graph client. See: https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/src/IAuthenticationProvider.ts
4745
*/
48-
class MyAuthenticationProvider implements AuthenticationProvider {
46+
class MsalAuthenticationProvider implements AuthenticationProvider {
4947

5048
account;
5149
scopes;
5250
interactionType;
5351

54-
private readonly _destroying$ = new Subject<void>();
55-
56-
constructor(providerOptions: ProviderOptions, private authService: MsalService, private msalBroadcastService: MsalBroadcastService) {
52+
constructor(providerOptions: ProviderOptions, private authService: MsalService) {
5753
this.account = providerOptions.account;
5854
this.scopes = providerOptions.scopes;
5955
this.interactionType = providerOptions.interactionType;
@@ -97,22 +93,14 @@ class MyAuthenticationProvider implements AuthenticationProvider {
9793
break;
9894

9995
case InteractionType.Redirect:
96+
/**
97+
* This will cause the app to leave the current page and redirect to the consent screen.
98+
* Once consent is provided, the app will return back to the current page and then the
99+
* silent token acquisition will succeed.
100+
*/
100101
this.authService.instance.acquireTokenRedirect({
101102
scopes: this.scopes
102103
});
103-
104-
this.msalBroadcastService.msalSubject$.pipe(
105-
filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),
106-
takeUntil(this._destroying$)
107-
).subscribe((result: EventMessage) => {
108-
response = result.payload as AuthenticationResult;
109-
110-
if (response.accessToken) {
111-
resolve(response.accessToken);
112-
} else {
113-
reject(Error('Failed to acquire an access token'));
114-
}
115-
});
116104
break;
117105

118106
default:

0 commit comments

Comments
 (0)