diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2020-08-13 16:11:45 +0200 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2020-08-13 16:11:45 +0200 |
commit | 4bd12049941df9993b19f75dedad0501c88a2e29 (patch) | |
tree | 493db16dc5c0fe90870e63f1334e8aee0de4c44d /src/app/open-id.service.ts | |
parent | 82965ba7dda078608c6413bcd8d0c718a9f1b3e0 (diff) | |
download | reclaim-ui-4bd12049941df9993b19f75dedad0501c88a2e29.tar.gz reclaim-ui-4bd12049941df9993b19f75dedad0501c88a2e29.zip |
fix claim processing
Diffstat (limited to 'src/app/open-id.service.ts')
-rw-r--r-- | src/app/open-id.service.ts | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/app/open-id.service.ts b/src/app/open-id.service.ts index 47f3c38..f8590e5 100644 --- a/src/app/open-id.service.ts +++ b/src/app/open-id.service.ts | |||
@@ -346,13 +346,30 @@ export class OpenIdService { | |||
346 | return []; | 346 | return []; |
347 | } | 347 | } |
348 | var claims = []; | 348 | var claims = []; |
349 | var json = JSON.parse(this.params['claims'])['userinfo']; | 349 | var json = []; |
350 | for(var key in json) | 350 | try { |
351 | json = JSON.parse(this.params['claims']); | ||
352 | } catch(e) { | ||
353 | console.log(e); | ||
354 | return claims; | ||
355 | } | ||
356 | if (undefined === json) { return claims }; | ||
357 | var userinfo = json['userinfo'] | ||
358 | if (undefined === userinfo) { return claims }; | ||
359 | var claimkeys = []; | ||
360 | for(var key in userinfo) | ||
351 | { | 361 | { |
352 | if (json[key]['attestation'] === true) | 362 | claims.push([key, userinfo[key]['essential'], userinfo[key]['attestation'], userinfo[key]['format']]); |
353 | { | 363 | claimkeys.push(key); |
354 | claims.push([key, json[key]['essential'], json[key]['attestation'], json[key]['format']]); | 364 | } |
355 | } | 365 | var idtoken = json['id_token']; |
366 | if (undefined === idtoken) { return claims }; | ||
367 | for(var key in idtoken) | ||
368 | { | ||
369 | if (!claimkeys.includes(key)) | ||
370 | { | ||
371 | claims.push([key, idtoken[key]['essential'], idtoken[key]['attestation'], idtoken[key]['format']]); | ||
372 | } | ||
356 | } | 373 | } |
357 | return claims; | 374 | return claims; |
358 | } | 375 | } |