Skip to content

Commit 8c1bc9b

Browse files
committed
bug regarding at_hash
1 parent 0bce14f commit 8c1bc9b

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

oauth-service.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ var OAuthService = (function () {
145145
return false;
146146
}
147147
if (this.issuer && claims.iss !== this.issuer) {
148-
console.warn("Wrong issuer: " + claims.issuer);
148+
console.warn("Wrong issuer: " + claims.iss);
149149
return false;
150150
}
151151
if (claims.nonce !== savedNonce) {
@@ -310,8 +310,13 @@ var OAuthService = (function () {
310310
var tokenHash = sha256(accessToken, { asBytes: true });
311311
var leftMostHalf = tokenHash.slice(0, (tokenHash.length / 2));
312312
var tokenHashBase64 = base64_js_1.fromByteArray(leftMostHalf);
313-
var atHash = tokenHashBase64.replace("+", "-").replace("/", "_").replace(/=/g, "");
314-
return (atHash == idClaims.at_hash);
313+
var atHash = tokenHashBase64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
314+
var claimsAtHash = idClaims.at_hash.replace(/=/g, "");
315+
if (atHash != claimsAtHash) {
316+
console.warn("exptected at_hash: " + atHash);
317+
console.warn("actual at_hash: " + claimsAtHash);
318+
}
319+
return (atHash == claimsAtHash);
315320
};
316321
return OAuthService;
317322
}());

oauth-service.ts

+11-9
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export class OAuthService {
183183
}
184184

185185
if (this.issuer && claims.iss !== this.issuer) {
186-
console.warn("Wrong issuer: " + claims.issuer);
186+
console.warn("Wrong issuer: " + claims.iss);
187187
return false;
188188
}
189189

@@ -377,16 +377,18 @@ export class OAuthService {
377377
checkAtHash(accessToken, idClaims) {
378378
if (!accessToken || !idClaims || !idClaims.at_hash ) return true;
379379
var tokenHash: Array<any> = sha256(accessToken, { asBytes: true });
380-
381-
// var leftMostHalf = tokenHash.substr(0, tokenHash.length/2 );
382380
var leftMostHalf = tokenHash.slice(0, (tokenHash.length/2) );
383-
384381
var tokenHashBase64 = fromByteArray(leftMostHalf);
385-
var atHash = tokenHashBase64.replace("+", "-").replace("/", "_").replace(/=/g, "");
386-
387-
// var atHash = Base64.encodeURI(leftMostHalf);
388-
389-
return (atHash == idClaims.at_hash);
382+
var atHash = tokenHashBase64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
383+
var claimsAtHash = idClaims.at_hash.replace(/=/g, "");
384+
385+
if (atHash != claimsAtHash) {
386+
console.warn("exptected at_hash: " + atHash);
387+
console.warn("actual at_hash: " + claimsAtHash);
388+
}
389+
390+
391+
return (atHash == claimsAtHash);
390392
}
391393

392394
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular2-oauth2",
3-
"version": "1.3.9",
3+
"version": "1.3.10",
44
"description": "",
55
"main": "oauth-service.js",
66
"author": "Manfred Steyer (http://www.softwarearchitekt.at)",

0 commit comments

Comments
 (0)