@chevre/domain
Version:
Chevre Domain Library for Node.js
45 lines (41 loc) • 1.26 kB
text/typescript
import * as jwt from 'jsonwebtoken';
async function verifyMembershipToken(params: {
token?: string;
secret: string;
}): Promise<any> {
let result: any;
const { secret, token } = params;
if (typeof token === 'string' && token.length > 0) {
try {
result = await new Promise<any>((resolve, reject) => {
jwt.verify(
token,
secret,
{
// issuer: credentials.jwt.issuer,
// ...(Array.isArray(params.audience)) ? { audience: params.audience } : undefined
},
(err, decoded: any) => {
if (err instanceof Error) {
reject(err);
} else {
resolve(decoded);
}
});
});
} catch (error) {
throw error;
}
} else {
throw new Error('Membership token');
}
return result;
}
verifyMembershipToken({
token: 'xxx',
secret: 'xxx'
})
// tslint:disable-next-line:no-console
.then(console.log)
// tslint:disable-next-line:no-console
.catch(console.error);