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

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

发布于 2021-08-09 字数 2532 浏览 1144 评论 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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2512 文章
30 评论
82839 人气
更多

推荐作者

qianbiandeboy

文章 0 评论 0

少女净妖师

文章 2 评论 0

zangqw

文章 0 评论 0

qq_7HKsl

文章 0 评论 0

伪装你

文章 1 评论 0