|
5 | 5 |
|
6 | 6 | var url = require('url') |
7 | 7 | var URL = url.URL |
8 | | -var async = require('async') |
9 | 8 | var request = require('request-promise') |
10 | 9 | var clientRoles = require('./rest/clientRoles') |
11 | 10 | var clients = require('./rest/clients') |
@@ -710,47 +709,36 @@ function token (options) { |
710 | 709 |
|
711 | 710 | return new Promise(function (resolve, reject) { |
712 | 711 | request(requestOptions) |
713 | | - .then(function (data) { |
714 | | - var verifyClaims = { |
715 | | - access_claims: function (done) { |
| 712 | + .then(async function (data) { |
| 713 | + const verifyClaims = [ |
| 714 | + new Promise((resolve, reject) => { |
716 | 715 | AccessToken.verify(data.access_token, { |
717 | 716 | key: self.jwks.keys[0], |
718 | 717 | issuer: self.issuer |
719 | | - }, function (err, claims) { |
720 | | - if (err) { return done(err) } |
721 | | - done(null, claims) |
| 718 | + }, (err, claims) => { |
| 719 | + if (err) { reject(err) } |
| 720 | + resolve(claims) |
722 | 721 | }) |
723 | | - } |
724 | | - } |
725 | | - // when requesting a token using client credentials no ID information is |
726 | | - // returned |
| 722 | + }) |
| 723 | + ] |
727 | 724 | if (formRequestData.grant_type !== 'client_credentials') { |
728 | | - verifyClaims.id_claims = function (done) { |
| 725 | + verifyClaims.push(new Promise((resolve, reject) => { |
729 | 726 | IDToken.verify(data.id_token, { |
730 | 727 | iss: self.issuer, |
731 | 728 | aud: self.client_id, |
732 | 729 | key: self.jwks.keys[0] |
733 | 730 | }, function (err, token) { |
734 | | - if (err) { return done(err) } |
735 | | - done(null, token.payload) |
| 731 | + if (err) { reject(err) } |
| 732 | + resolve(token.payload) |
736 | 733 | }) |
737 | | - } |
| 734 | + })) |
738 | 735 | } |
739 | | - // verify tokens |
740 | | - async.parallel(verifyClaims, function (err, result) { |
741 | | - if (err) { |
742 | | - return reject(err) |
743 | | - } |
744 | | - |
745 | | - data.id_claims = result.id_claims |
746 | | - data.access_claims = result.access_claims |
747 | | - |
748 | | - resolve(data) |
749 | | - }) |
750 | | - }) |
751 | | - .catch(function (err) { |
752 | | - reject(err) |
| 736 | + const [accessClaims, idClaims] = await Promise.all(verifyClaims) |
| 737 | + data.id_claims = idClaims |
| 738 | + data.access_claims = accessClaims |
| 739 | + resolve(data) |
753 | 740 | }) |
| 741 | + .catch(err => reject(err)) |
754 | 742 | }) |
755 | 743 | } |
756 | 744 |
|
|
0 commit comments