gpt4 book ai didi

hapijs - hapi.js 身份验证方案中使用的身份验证工件是什么?

转载 作者:行者123 更新时间:2023-12-03 15:30:22 26 4
gpt4 key购买 nike

在 hapi.js API 中,他们指定身份验证方案也可以将工件作为凭证对象的一部分返回。

究竟什么是身份验证工件,它们为什么有用?有没有一个很好的例子来说明为什么 hapi 团队将此作为其 API 的一部分?

  • 结果 - 一个包含以下内容的对象:
  • 凭据 - 经过身份验证的凭据。
  • 工件 - 可选的身份验证工件。

  • http://hapijs.com/api#serverauthschemename-scheme

    最佳答案

    简答

    request.auth您可以访问以下属性:

  • credentials - 识别或代表唯一用户的事物
  • artifacts - 非凭据的可选身份验证相关数据

  • Hapi 身份验证方案不是有状态的,但它们可以将重要的身份验证数据存储在 request.auth.artifacts 中。因此它可以在以后被方案中的其他身份验证功能访问。

    究竟什么是身份验证工件?

    首先让我们看一下 artifact 的一般定义(来自维基百科):

    [artifacts] refer to something that arises from the process in hand rather than the issue itself, i.e., a result of interest that stems from the means rather than the end.



    一旦完成对请求的初始身份验证,身份验证方案可以选择将有关身份验证尝试的一些内部信息(副产品)传递回消费应用程序。

    很明显 artifacts里面的数据每个方案都不一样。使用时 Hawk (使用 hapi-auth-hawk ),工件将是包含特定于 Hawk 的信息的对象,例如来自请求的时间戳、随机数和 MAC 代码:
    { 
    method: 'GET',
    host: '127.0.0.1',
    port: '8000',
    resource: '/resource/1?b=1&a=2',
    ts: '1426940961',
    nonce: 'IRd0nH',
    hash: undefined,
    ext: 'and welcome!',
    app: undefined,
    dlg: undefined,
    mac: 'tKolc1UJ5w8zGcDT6+knQFDHAdJtf0/rDLOZHTzUCoU=',
    id: 'dh37fgj292je'
    }

    ……它们为什么有用?

    可以在 hapi-auth-hawk 中找到它们为何有用的示例。 .记住一个 auth scheme in hapi可以有 3 个不同的函数来进行身份验证:
  • authenticate - 验证初始请求所需的函数
  • payload - 可选地验证有效负载
  • response - 可选地验证响应

  • 在 hapi-auth-hawk 中, request.auth.artifacts填充在 authenticate来自初始请求的方法。这意味着如果 payloadresponse稍后执行,他们可以从 request 访问相同的共享状态对象而不必再次解析请求,因此在这种情况下,它基本上只是一个方便的容器,用于从请求中提取相关的身份验证数据。

    enter image description here

    关于hapijs - hapi.js 身份验证方案中使用的身份验证工件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177093/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com