<a href=""><img src="" align="right" /></a> ![yar Logo](

Usage no npm install needed!

<script type="module">
  import brokenYar from '';


yar Logo

A hapi cookie jar

Build Status

The yar plugin adds a simple way to set a persistant state (using an Iron encrypted cookie) across requests. It has support for session management - either stored on the client via cookie, in server memory, or using an external database (via custom storage code).

For example, the first handler sets the jar content and the second utilizes it:

var handler1 = function () {

    this.plugins.yar = {
        key: 'value'

    return this.reply();

var handler2 = function () {

    this.reply(this.state.yar.key);     // Will send back 'value'

The plugin requires a password for encryption, and the ext permission:

var options = {
    permissions: {
        ext: true                   // Required
    plugin: {
        name: 'yar' ,               // Optional, overrides cookie name. Defaults to 'yar'. Doesn't affect 'plugins.yar'.
        isSingleUse: false,         // Optional, clears jar after one request. Defaults to false.
        options: {
            password: 'password',   // Required
            isSecure: true          // Optional, any supported cookie options except `encoding`

var server = new Hapi.Server();

server.plugin().require('yar', options, function (err) { });