hapijs 中的多个身份验证方案?
Multiple auth schemes in hapijs?
我正在使用 hapi.js 构建应用程序。该应用程序的客户端将是一个 Web 应用程序,因此身份验证是通过 cookie 中的 JWT 或通过将发送 Bearer 密钥 header 的 OAuth2 客户端。
框架是否有某种方式允许对同一路由使用这两种方案?如果两个方案都失败,我希望身份验证失败,但如果其中一个通过。
查看 auth.strategies
下的 http://hapijs.com/api#route-options。这将允许您为您的路线设置多种策略。您可以使用 auth.mode
.
定义行为
hapi 支持 multiple authentication strategies for a route。注册用于身份验证的个人插件,然后设置默认身份验证方案。
var Hapi = require('hapi')
var BasicAuth = require('hapi-auth-basic')
var CookieAuth = require('hapi-auth-cookie')
// create new server instance
var server = new Hapi.Server()
// register plugins to server instance
server.register([ BasicAuth, CookieAuth ], function (err) {
if (err) {…}
server.auth.strategy('simple', 'basic', { validateFunc: basicValidationFn })
server.auth.strategy('session', 'cookie', { password: '…' })
server.auth.default('simple')
})
每个身份验证方案可能需要您提供的专用配置(如 cookie 密码、验证功能等)。
我正在使用 hapi.js 构建应用程序。该应用程序的客户端将是一个 Web 应用程序,因此身份验证是通过 cookie 中的 JWT 或通过将发送 Bearer 密钥 header 的 OAuth2 客户端。
框架是否有某种方式允许对同一路由使用这两种方案?如果两个方案都失败,我希望身份验证失败,但如果其中一个通过。
查看 auth.strategies
下的 http://hapijs.com/api#route-options。这将允许您为您的路线设置多种策略。您可以使用 auth.mode
.
hapi 支持 multiple authentication strategies for a route。注册用于身份验证的个人插件,然后设置默认身份验证方案。
var Hapi = require('hapi')
var BasicAuth = require('hapi-auth-basic')
var CookieAuth = require('hapi-auth-cookie')
// create new server instance
var server = new Hapi.Server()
// register plugins to server instance
server.register([ BasicAuth, CookieAuth ], function (err) {
if (err) {…}
server.auth.strategy('simple', 'basic', { validateFunc: basicValidationFn })
server.auth.strategy('session', 'cookie', { password: '…' })
server.auth.default('simple')
})
每个身份验证方案可能需要您提供的专用配置(如 cookie 密码、验证功能等)。