6 Commits

Author SHA1 Message Date
d34feacdf1 1.0.6 2019-10-01 19:08:00 +02:00
6c7a890abe fix(core): update 2019-10-01 19:07:59 +02:00
dda163de2c 1.0.5 2019-10-01 18:04:43 +02:00
afa91b3da3 fix(core): update 2019-10-01 18:04:43 +02:00
a7660deb78 1.0.4 2019-02-23 13:46:36 +01:00
9b96bfceb8 fix(core): update 2019-02-23 13:46:36 +01:00
7 changed files with 844 additions and 539 deletions

1267
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartjwt", "name": "@pushrocks/smartjwt",
"version": "1.0.3", "version": "1.0.6",
"private": false, "private": false,
"description": "a package for handling jwt", "description": "a package for handling jwt",
"main": "dist/index.js", "main": "dist/index.js",
@ -13,12 +13,16 @@
"format": "(gitzone format)" "format": "(gitzone format)"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.0.22", "@gitzone/tsbuild": "^2.1.17",
"@gitzone/tstest": "^1.0.15", "@gitzone/tstest": "^1.0.24",
"@pushrocks/tapbundle": "^3.0.7", "@pushrocks/tapbundle": "^3.0.13",
"@types/node": "^11.9.5", "@types/node": "^12.7.8",
"tslint": "^5.11.0", "tslint": "^5.20.0",
"tslint-config-prettier": "^1.15.0" "tslint-config-prettier": "^1.15.0"
}, },
"dependencies": {} "dependencies": {
"@pushrocks/smartcrypto": "^1.0.5",
"@types/jsonwebtoken": "^8.3.4",
"jsonwebtoken": "^8.5.1"
}
} }

View File

@ -20,6 +20,8 @@ a package for handling jwt
For further information read the linked docs at the top of this readme. For further information read the linked docs at the top of this readme.
This package is intended for being used serverside. There is a corresponding client package for browsers calls @pushrocks/webtoken
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)

View File

@ -1,8 +1,28 @@
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, tap } from '@pushrocks/tapbundle';
import * as smartjwt from '../ts/index'; import * as smartjwt from '../ts/index';
tap.test('first test', async () => { let smartjwtInstance: smartjwt.SmartJwt;
console.log(smartjwt.standardExport); let testJwt: string;
tap.test('should create a valid instance', async () => {
smartjwtInstance = new smartjwt.SmartJwt();
await smartjwtInstance.createNewKeyPair();
console.log(smartjwtInstance);
}); });
tap.test('should create a valid jwt', async () => {
await smartjwtInstance.createNewKeyPair();
});
tap.test('should create a new jwt', async () => {
testJwt = await smartjwtInstance.createJWT({hi: 'there'});
console.log(testJwt);
});
tap.test('should verify a jwt', async () => {
const data = await smartjwtInstance.verifyJWTAndGetData(testJwt);
console.log(data);
});
tap.start(); tap.start();

View File

@ -1,3 +1 @@
import * as plugins from './smartjwt.plugins'; export * from './smartjwt.classes.smartjwt';
export let standardExport = 'Hi there! :) This is an exported string';

View File

@ -0,0 +1,54 @@
import * as plugins from './smartjwt.plugins';
/**
*
*/
export class SmartJwt {
public smartcryptoInstance = new plugins.smartcrypto.Smartcrypto();
public publicKey: plugins.smartcrypto.PublicKey;
public privateKey: plugins.smartcrypto.PrivateKey;
constructor() {};
/**
* creates a JWT
*/
public async createJWT(payloadArg: any) {
return plugins.jsonwebtoken.sign(payloadArg, this.privateKey.toPemString(), {
algorithm: 'RS256'
});
}
/**
* checks a JWT
*/
public async verifyJWTAndGetData(jwtArg: string) {
return plugins.jsonwebtoken.verify(jwtArg, this.publicKey.toPemString(), {
algorithms: ['RS256']
});
}
/**
* sets a private key to create jwts with
*/
public async setPrivateKey(privateKey: plugins.smartcrypto.PrivateKey) {
this.privateKey = privateKey;
}
/**
* sets a public key
*/
public async setPublicKey(publicKey: plugins.smartcrypto.PublicKey) {
this.publicKey = publicKey;
}
/**
* creates a new keypair
*/
public async createNewKeyPair() {
const keypair = await this.smartcryptoInstance.createKeyPair();
this.setPrivateKey(keypair.privateKey);
this.setPublicKey(keypair.publicKey);
}
}

View File

@ -1,2 +1,12 @@
const removeme = {}; // @pushrocks scope
export { removeme }; import * as smartcrypto from '@pushrocks/smartcrypto';
export {
smartcrypto
};
// thirdparty scope
import * as jsonwebtoken from 'jsonwebtoken';
export {
jsonwebtoken
};