vados-requesthasher

A plugin decrypts querystring, body data (except multipart) and encrypts response body data

Usage no npm install needed!

<script type="module">
  import vadosRequesthasher from 'https://cdn.skypack.dev/vados-requesthasher';
</script>

README

vados-requesthasher

A plugin decrypts querystring, request body data (except multipart) and encrypts response body data for vados

Install

npm i vados-requesthasher -S

Examples

Typescript

Use like a middleware

import { Server } from 'vados';
import { hasher } from 'vados-hasher';

Server.use(hasher('Key is 8 characters', {
    baseOnRequest: false,
    mode: ['query', 'body', 'response']
}))

Use in controller (Manual apis which you want encrypt data when you not declare in Server.use)

import { GET, POST, PUT, DELETE, HEAD, INJECT } from 'vados-route';
import { HASHER, Hasher } from 'vados-requesthasher';

const key = Hasher.create('Key is 8 characters');

export default class TestController {
    @GET('/test')
    @HASHER(key, {
        baseOnRequest: false,
        mode: ['query', 'body', 'response']
    })
    static async test({ body, headers, query }) {
        return {
            name: 'thanh'
        };
    }
}

In that:

  • baseOnRequest: Plugin auto detect to encrypt, decrypt base on request from client via "accept" field is "text/encryption"
  • mode: Which is encrypted or decrypted.
    • query: Decrypt query string on request which is sent by client
    • body: Decrypt body data in POST, PUT (except multipart type) which is sent by client
    • response: Encrypt response body data which is sent from server to client