Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

prismy-csrf

0.0.1-0 • Public • Published

prismy-csrf

🛡 CSRF Protection for prismy

Build Status codecov NPM download Language grade: JavaScript

npm i prismy-csrf

Example

import {
  prismy,
  Context,
  createInjectDecorators,
  createTextBodySelector,
  UrlEncodedBody
} from 'prismy'
import createCSRFProtection from 'prismy-csrf'
import JWTCSRFStrategy from 'prismy-csrf-strategy-jwt'
import querystring from 'querystring'
 
const { CSRFToken, CSRFMiddleware } = createCSRFProtection(
  new JWTCSRFStrategy({
    secret: 'RANDOM_HASH',
    tokenSelector: (context: Context) => {
      const body = createUrlEncodedBodySelector()(context)
      return body._csrf
    }
  })
)
 
class MyHandler extends BaseHandler {
  async handle(@CSRFToken() csrfToken: string) {
    return [
      '<!DOCTYPE html>',
      '<body>',
      '<form action="/" method="post">',
      '<input name="message">',
      `<input type="hidden" name="_csrf" value=${csrfToken}>`,
      '<button type="submit">Send</button>',
      '</form>',
      '</body>'
    ].join('')
  }
}
 
export default prismy([CSRFMiddleware, MyHandler])

Keywords

Install

npm i prismy-csrf

DownloadsWeekly Downloads

1

Version

0.0.1-0

License

MIT

Unpacked Size

6.34 kB

Total Files

5

Last publish

Collaborators

  • avatar