【问题标题】:Multiple auth schemes in hapijs?hapijs 中的多个身份验证方案?
【发布时间】:2017-02-02 17:19:54
【问题描述】:

我正在使用 hapi.js 构建一个应用程序。此应用程序的客户端将是 Web 应用程序,因此身份验证是通过 coookie 中的 JWT 或通过将发送 Bearer 密钥标头的 OAuth2 客户端进行的。

框架是否允许在同一条路线上使用两种方案?如果两个方案都失败,我希望身份验证失败,但如果其中一个通过,则通过。

【问题讨论】:

    标签: hapijs


    【解决方案1】:

    查看auth.strategies 下的http://hapijs.com/api#route-options。这将允许您为路线设置多种策略。您可以使用auth.mode 定义行为。

    【讨论】:

      【解决方案2】:

      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 密码、验证功能等)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-31
        • 2015-05-17
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 2021-04-28
        • 2021-11-27
        • 1970-01-01
        相关资源
        最近更新 更多