1
This commit is contained in:
parent
ccaa2e8bee
commit
b29f7ab025
@ -4,28 +4,37 @@ const base64url = require('base64url');
|
||||
const jwksClient = require('jwks-rsa');
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
const LOCK_KEY = 'getJwtLock:';
|
||||
const jwksKeyHash = {};
|
||||
const jwksKeyLockHash = {};
|
||||
|
||||
async function asyncGetKey(jkwsUri, header, cb) {
|
||||
if (jwksUri in jwksKeyHash) {
|
||||
const c = jwksKeyHash[jwksUri];
|
||||
cb(null, c['key']);
|
||||
return;
|
||||
}
|
||||
const client = jwksClient({
|
||||
jwksUri: jwksUri
|
||||
});
|
||||
client.getSigningKey(header.kid, function(err, key) {
|
||||
const signingKey = key.publicKey || key.rsaPublicKey;
|
||||
if (!err) {
|
||||
jwksKeyHash[jwksUri] = {
|
||||
'key': key,
|
||||
'lastRefreshTime': utils.getUtcTime()
|
||||
};
|
||||
app.lock(LOCK_KEY + jkwsUri);
|
||||
try {
|
||||
if (jwksUri in jwksKeyHash) {
|
||||
const c = jwksKeyHash[jwksUri];
|
||||
cb(null, c['key']);
|
||||
return;
|
||||
}
|
||||
cb(null, signingKey);
|
||||
});
|
||||
const client = jwksClient({
|
||||
jwksUri: jwksUri
|
||||
});
|
||||
client.getSigningKey(header.kid, function(err, key) {
|
||||
try {
|
||||
const signingKey = key.publicKey || key.rsaPublicKey;
|
||||
if (!err) {
|
||||
jwksKeyHash[jwksUri] = {
|
||||
'key': key,
|
||||
'lastRefreshTime': utils.getUtcTime()
|
||||
};
|
||||
}
|
||||
cb(null, signingKey);
|
||||
} finally {
|
||||
app.unLock(LOCK_KEY + jkwsUri);
|
||||
}
|
||||
});
|
||||
} finally {
|
||||
app.unLock(LOCK_KEY + jkwsUri);
|
||||
}
|
||||
}
|
||||
|
||||
function asyncVerify(jwksUri, data) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user