Skip to content

cagrican/hapi-context-credentials2

Repository files navigation

hapi-context-credentials

hapi.js plugin - Include request.auth.credentials2 in default view context, if user is authenticated.

##Notes This plugin only supports Hapi version 17 and above. If you are using hapijs prior to version 17, please install hapi-context-credentials

##Install

npm install --save hapi-context-credentials2

##Background

For pretty much any website that has a login feature, parts of the page will be rendered conditionally based on the current user's state. Perhaps it will display their username in the header and show a logout button for logged-in users.

I usually build my sites out at first without any auth and then add auth at a later stage. If I'm using a common layout, I would later need to add something like the following to the handler of every route.

handler:  function (request, h) => {
    ...
    return h.view('index', {
        credentials: request.auth.credentials
    });
}

And in my template I might have something like:

{{#if credentials.firstName}}
    <h1>Welcome back {{credentials.firstName}}!</h1>
{{else}}
    <h1>Welcome guest!</h1>
{{/if}}

This module saves the work by ensuring request.auth.credentials2 is included in every view context on your server, so you don't need to manually include it in your handlers.

##Usage

Just register like any Hapi plugin:

await server.register(require('hapi-context-credentials2'));

You can then output credentials in your views.

About

Hapi.js 17 plugin - Include `request.auth.credentials` in default view context

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published