VimUnDo`M\B6l)[/$r4|Jd33332YT_YS[![CircleCI](https://img.shields.io/circleci/project/blockstack/jsontokens-js/master.svg)](https://circleci.com/gh/blockstack/jsontokens-js/tree/master)5_YS_[![npm](https://img.shields.io/npm/l/jsontokens.svg)](https://www.npmjs.com/package/jsontokens)5_YS_[![npm](https://img.shields.io/npm/v/jsontokens.svg)](https://www.npmjs.com/package/jsontokens)5_YS`[![npm](https://img.shields.io/npm/dm/jsontokens.svg)](https://www.npmjs.com/package/jsontokens)5_YSO[![Slack](http://slack.blockstack.org/badge.svg)](http://slack.blockstack.org/)5_YS/# JSON Tokens JS5_YS/Knode.js library for signing, decoding, and verifying JSON Web Tokens (JWTs)5_ YS### Installation5_ YS5_ YS```5_ YSnpm install jsontokens5_ YS```5_  YS5_ YS### Signing Tokens5_YS5_YT```js5_YT(import { TokenSigner } from 'jsontokens'5_YT5_YTXconst rawPrivateKey = '278a5de700e29faae8e40e366ec5012b5ec63d36ec77e8a2417154cc1d25383f'5_YT+const tokenPayload = {"iat": 1440713414.85}5_YTIconst token = new TokenSigner('ES256k', rawPrivateKey).sign(tokenPayload)5_YT```5_YT5_YT### Creating Unsecured Tokens5_YT5_YT```js5_YT1import { createUnsecuredToken } from 'jsontokens'5_YT5_YT(const createUnsecuredToken(tokenPayload)5_YT```5_ YT5_! YT### Decoding Tokens5_ "!YT5_!#"YT```js5_"$#YT*import { decodeToken } = from 'jsontokens'5_#%$YT$const tokenData = decodeToken(token)5_$&%YT```5_%'&YT5_&('YT### Verifying Tokens5_')(YT5_(*)YT```js5_)+*YT*import { TokenVerifier } from 'jsontokens'5_*,+YTYconst rawPublicKey = '03fdd57adec3d438ea237fe46b33ee1e016eda6b585c3e27ea66686c2ea5358479'5_+-,YTHconst verified = new TokenVerifier('ES256k', rawPublicKey).verify(token)5_,.-YT```5_-/.YT5_.0/YT### Example Tokens5_/10YT5_021YT> eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk5_132YT5_23YT5