Skip to content

Commit 178605a

Browse files
authored
Merge pull request #3 from pixtron/update-appauth
Updgrade to the latest versions of AppAuth-JS.
2 parents ac7d4b5 + 96da52e commit 178605a

File tree

3 files changed

+469
-701
lines changed

3 files changed

+469
-701
lines changed

flow.ts

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
} from "@openid/appauth/built/authorization_request_handler";
2424
import { AuthorizationResponse } from "@openid/appauth/built/authorization_response";
2525
import { AuthorizationServiceConfiguration } from "@openid/appauth/built/authorization_service_configuration";
26+
import { NodeCrypto } from '@openid/appauth/built/node_support/';
2627
import { NodeBasedHandler } from "@openid/appauth/built/node_support/node_request_handler";
2728
import { NodeRequestor } from "@openid/appauth/built/node_support/node_requestor";
2829
import {
@@ -83,7 +84,12 @@ export class AuthFlow {
8384
this.notifier.setAuthorizationListener((request, response, error) => {
8485
log("Authorization request complete ", request, response, error);
8586
if (response) {
86-
this.makeRefreshTokenRequest(response.code)
87+
let codeVerifier: string | undefined;
88+
if(request.internal && request.internal.code_verifier) {
89+
codeVerifier = request.internal.code_verifier;
90+
}
91+
92+
this.makeRefreshTokenRequest(response.code, codeVerifier)
8793
.then(result => this.performWithFreshTokens())
8894
.then(() => {
8995
this.authStateEmitter.emit(AuthStateEmitter.ON_TOKEN_RESPONSE);
@@ -115,14 +121,14 @@ export class AuthFlow {
115121
}
116122

117123
// create a request
118-
const request = new AuthorizationRequest(
119-
clientId,
120-
redirectUri,
121-
scope,
122-
AuthorizationRequest.RESPONSE_TYPE_CODE,
123-
undefined /* state */,
124-
extras
125-
);
124+
const request = new AuthorizationRequest({
125+
client_id: clientId,
126+
redirect_uri: redirectUri,
127+
scope: scope,
128+
response_type: AuthorizationRequest.RESPONSE_TYPE_CODE,
129+
state: undefined,
130+
extras: extras
131+
}, new NodeCrypto());
126132

127133
log("Making authorization request ", this.configuration, request);
128134

@@ -132,19 +138,27 @@ export class AuthFlow {
132138
);
133139
}
134140

135-
private makeRefreshTokenRequest(code: string): Promise<void> {
141+
private makeRefreshTokenRequest(code: string, codeVerifier: string|undefined): Promise<void> {
136142
if (!this.configuration) {
137143
log("Unknown service configuration");
138144
return Promise.resolve();
139145
}
146+
147+
const extras: StringMap = {};
148+
149+
if(codeVerifier) {
150+
extras.code_verifier = codeVerifier;
151+
}
152+
140153
// use the code to make the token request.
141-
let request = new TokenRequest(
142-
clientId,
143-
redirectUri,
144-
GRANT_TYPE_AUTHORIZATION_CODE,
145-
code,
146-
undefined
147-
);
154+
let request = new TokenRequest({
155+
client_id: clientId,
156+
redirect_uri: redirectUri,
157+
grant_type: GRANT_TYPE_AUTHORIZATION_CODE,
158+
code: code,
159+
refresh_token: undefined,
160+
extras: extras
161+
});
148162

149163
return this.tokenHandler
150164
.performTokenRequest(this.configuration, request)
@@ -179,13 +193,15 @@ export class AuthFlow {
179193
// do nothing
180194
return Promise.resolve(this.accessTokenResponse.accessToken);
181195
}
182-
let request = new TokenRequest(
183-
clientId,
184-
redirectUri,
185-
GRANT_TYPE_REFRESH_TOKEN,
186-
undefined,
187-
this.refreshToken
188-
);
196+
let request = new TokenRequest({
197+
client_id: clientId,
198+
redirect_uri: redirectUri,
199+
grant_type: GRANT_TYPE_REFRESH_TOKEN,
200+
code: undefined,
201+
refresh_token: this.refreshToken,
202+
extras: undefined
203+
});
204+
189205
return this.tokenHandler
190206
.performTokenRequest(this.configuration, request)
191207
.then(response => {

0 commit comments

Comments
 (0)