oc-plugin-jwt
v1.0.1
Published
OpenComponents Plugin for Verifying & Decoding JSON Web Tokens (JWT)
Downloads
21
Readme
oc-plugin-jwt
OpenComponents plugin for validating JSON Web Token (JWT) inside OC components.
Requirements
- Node version: min 6
- OC Registry
Install
npm i oc-plugin-jwt --save
Registry setup
More info about integrating OC plugins: here
Registering using the simple in-memory keystore.
const registry = oc.registry(configuration);
registry.register(
{
name: 'jwtVerify',
register: require('oc-plugin-jwt').verify,
options: {
keys: {
'key-id-1': {
publicKey: fs.readFileSync('certificate.pem')
},
'key-id-2': {
secret: 'super-secret-password'
}
}
}
}
);
registry.start(callback);
Or custom using a custom keystore
const registry = oc.registry(configuration);
registry.register(
{
name: 'jwtVerify',
register: require('oc-plugin-jwt').verify,
options: {
keyStore: {
getSecretOrPublicKey(keyId, callback) {
// Get the public key or secret by some method
return callback(null, key);
}
}
}
}
);
registry.start(callback);
Using it inside components
Example for a component's server.js:
module.exports.data = (context, callback) => {
const exampleToken =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtleS1pZC0yIn0.' +
'eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.' +
'bQVxleqAX7NQzI_RkIPFVfTl44-iEY0UYPUBm10789o';
context.plugins.jwtVerify(exampleToken, (error, verifiedToken) => {
if (error) {
// Handle token verification errors
callback(error);
}
callback(null, { verifiedToken: verifiedToken });
});
};