
Research
/Security News
Contagious Interview Campaign Escalates With 67 Malicious npm Packages and New Malware Loader
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
hapi-auth-multiple-strategies
Advanced tools
hapi plugin to require multiple authentication strategies
Require multiple authentication strategies in hapi.
Installation · Usage · Strategy Options
Follow @marcuspoehls for updates!
The Future Studio University supports development of this hapi plugin 🚀
Join the Future Studio University and Skyrocket in Node.js
Add hapi-auth-multiple-strategies
in your hapi project to authenticate a request against multiple authentication strategies. Hapi allows you to define multiple auth strategies on a route, but this requires only a single strategy to authenticate the request. In contrast, hapi-auth-multiple-strategies
requires all strategies to be successful.
Add hapi-auth-multiple-strategies
as a dependency to your project:
npm i hapi-auth-multiple-strategies
hapi v19 (or later) and Node.js v12 (or newer)
This plugin requires hapi v19 (or later) and Node.js v12 or newer.
Major Release | hapi.js version | Node.js version |
---|---|---|
v3 | >=18 hapi | >=12 |
v2 | >=18 hapi | >=8 |
v1 | >=17 hapi | >=8 |
Register hapi-auth-multiple-strategies
to your hapi server. This will add the multiple-strategies
authentication scheme to your hapi server.
await server.register({
plugin: require('hapi-auth-multiple-strategies')
})
// went smooth like chocolate :)
// now your hapi server supports the 'multiple-strategies' auth scheme
Then declare a new authentication strategy base on the multiple-strategies
scheme and pass in all required strategies
.
// Assuming you have the following strategies your server
server.auth.strategy('jwt', 'bearer', options);
server.auth.strategy('jwt-refresh', 'token', options);
// create a new strategy that requires both 'jwt' strategies
server.auth.strategy('jwt-all-in', 'multiple-strategies', {
strategies: ['jwt', 'jwt-refresh']
});
// use the 'jwt-all-in' strategy on your route
server.route({
method: 'GET',
path: '/api/logout',
config: {
auth: 'jwt-all-in',
handler: () => 'hey bud, you’re logged out'
}
});
The jwt-all-in
strategy ensures that an incoming request satisfies both strategies, jwt
and jwt-refresh
.
If a request doesn’t authenticate with one or more of the strategies, it will return unauthenticated.
When creating a new authentication strategy using the multiple-strategies
scheme, you’re required to pass in an array of the authentication strategy names that are required.
strategies
: (Array), required
Typically the request.auth.credentials
is populated with the credentials from a single strategy. When testing multiple strategies, you’ll get the credentials from all strategies.
When a request passes all authentication strategies, the related credentials are assigned to the strategy’s name in request.auth.credentials
.
Because hapi authorizes requests via the scope
property, you’ll find the aggregated scope from all strategies in the credentials as well.
Here’s a sample result of request.auth.credentials
:
{
jwt: { name: 'Marcus', scope: [ 'admin' ] }
'jwt-refresh': { username: 'marcus', name: 'Marcus', scope: [ 'user' ] }
scope: [ 'admin', 'user' ]
});
Enjoy!
git checkout -b my-feature
git commit -am 'Add some feature'
git push origin my-new-feature
MIT © Future Studio
futurestud.io · GitHub @futurestudio · Twitter @futurestud_io
3.0.0 - 2020-01-10
FAQs
hapi plugin to require multiple authentication strategies
The npm package hapi-auth-multiple-strategies receives a total of 93 weekly downloads. As such, hapi-auth-multiple-strategies popularity was classified as not popular.
We found that hapi-auth-multiple-strategies demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.