basic-auth 通用身份验证授权 http 请求头字段解析器

发布于 2021-08-09 19:40:49 字数 2314 浏览 1916 评论 0

basic-auth 是一个通用基本身份验证授权头字段解析器。

安装

这是一个 Node.js 模块,可通过 npm registry 获得。安装是使用以下npm install 命令完成的 :

$ npm install basic-auth

应用程序接口

var auth = require('basic-auth')

auth(req)

从给定请求中获取基本身份验证凭据。的Authorization 报头进行解析,并且如果首部是无效的,undefined则返回,否则将物体与namepass属性。

auth.parse(string)

解析基本身份验证授权标头字符串。这将返回一个具有namepass属性的对象,或者undefined如果字符串无效。

例子

将 Node.js 请求对象传递给模块导出。如果解析失败 undefined则返回,否则返回一个带有.nameand的对象.pass

var auth = require('basic-auth')
var user = auth(req)
// => { name: 'something', pass: 'whatever' }

来自任何其他位置的标头字符串也可以用 解析 auth.parse,例如Proxy-Authorization标头:

var auth = require('basic-auth')
var user = auth.parse(req.getHeader('Proxy-Authorization'))

使用 vanilla node.js http 服务器

var http = require('http')
var auth = require('basic-auth')
var compare = require('tsscmp')

// Create server
var server = http.createServer(function (req, res) {
  var credentials = auth(req)

  // Check credentials
  // The "check" function will typically be against your user store
  if (!credentials || !check(credentials.name, credentials.pass)) {
    res.statusCode = 401
    res.setHeader('WWW-Authenticate', 'Basic realm="example"')
    res.end('Access denied')
  } else {
    res.end('Access granted')
  }
})

// Basic function to validate credentials for example
function check (name, pass) {
  var valid = true

  // Simple method to prevent short-circut and use timing-safe compare
  valid = compare(name, 'john') && valid
  valid = compare(pass, 'secret') && valid

  return valid
}

// Listen
server.listen(3000)

项目地址:https://github.com/jshttp/basic-auth

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文