1
This commit is contained in:
parent
36993cf342
commit
dfe375f24d
@ -3,6 +3,42 @@ const base64url = require('base64url');
|
|||||||
const jwksClient = require('jwks-rsa');
|
const jwksClient = require('jwks-rsa');
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require('jsonwebtoken');
|
||||||
|
|
||||||
|
const jwksKeyHash = {};
|
||||||
|
|
||||||
|
function asyncVerify(jwksUri, data) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const ret = {
|
||||||
|
err: null,
|
||||||
|
decoded: null
|
||||||
|
};
|
||||||
|
const client = jwksClient({
|
||||||
|
jwksUri: jwksUri
|
||||||
|
});
|
||||||
|
function getKey(header, cb ) {
|
||||||
|
console.log(header);
|
||||||
|
client.getSigningKey(header.kid, function(err, key) {
|
||||||
|
console.log(err);
|
||||||
|
console.log(key);
|
||||||
|
const signingKey = key.publicKey || key.rsaPublicKey;
|
||||||
|
if (!err) {
|
||||||
|
jwksKeyHash[jwksUri] = {
|
||||||
|
'key': key,
|
||||||
|
'last_refresh_time': 0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
cb(null, signingKey);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
jwt.verify(data, getKey, function(err, decoded) {
|
||||||
|
console.log(err);
|
||||||
|
console.log(decoded);
|
||||||
|
ret.err = err;
|
||||||
|
ret.decoded = decoded;
|
||||||
|
resolve(ret);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function verify(session) {
|
async function verify(session) {
|
||||||
const postData = session.getBody();
|
const postData = session.getBody();
|
||||||
console.log(postData);
|
console.log(postData);
|
||||||
@ -11,21 +47,14 @@ async function verify(session) {
|
|||||||
const header = base64url.decode(arr[0]);
|
const header = base64url.decode(arr[0]);
|
||||||
const payload = base64url.decode(arr[1]);
|
const payload = base64url.decode(arr[1]);
|
||||||
const sign = base64url.decode(arr[2]);
|
const sign = base64url.decode(arr[2]);
|
||||||
const client = jwksClient({
|
const {err, decoded} = await asyncVerify(jwksUri, postData['data']);
|
||||||
jwksUri: jwksUri
|
console.log(err, decoded);
|
||||||
});
|
if (err != null) {
|
||||||
function getKey(header, cb ) {
|
session.rspErr(500, err);
|
||||||
console.log(header);
|
return;
|
||||||
client.getSigningKey(header.kid, function(err, key) {
|
}
|
||||||
console.log(err);
|
session.rspData({
|
||||||
console.log(key);
|
'decoded': decoded
|
||||||
const signingKey = key.publicKey || key.rsaPublicKey;
|
|
||||||
cb(null, signingKey);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
jwt.verify(postData['data'], getKey, function(err, decoded) {
|
|
||||||
console.log(err);
|
|
||||||
console.log(decoded);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user