Node.JS 中的基本 HTTP 身份验证?

2024-03-27

我正在尝试使用 NodeJS 编写一个 REST-API 服务器,就像使用的那样Joyent http://api.no.de,一切都很好,除了我无法验证普通用户的身份验证。如果我跳到终端并执行curl -u username:password localhost:8000 -X GET,我无法在 NodeJS http 服务器上获取值 username:password 。如果我的 NodeJS http 服务器是这样的

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");

,我不应该在其中的某个位置获取值 username:passwordreq来自回调的对象? 我怎样才能获得这些值而无需使用Connect 的基本 http 身份验证 http://senchalabs.github.com/connect/middleware-basicAuth.html ?


用户名:密码包含在授权标头中作为 base64 编码的字符串.

尝试这个:

const http = require('http');
 
http.createServer(function (req, res) {
  var header = req.headers.authorization || '';       // get the auth header
  var token = header.split(/\s+/).pop() || '';        // and the encoded auth token
  var auth = Buffer.from(token, 'base64').toString(); // convert from base64
  var parts = auth.split(/:/);                        // split on colon
  var username = parts.shift();                       // username is first
  var password = parts.join(':');                     // everything else is the password
 
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('username is "' + username + '" and password is "' + password + '"');
}).listen(1337, '127.0.0.1');

From HTTP 身份验证:基本和摘要式访问身份验证 - 第 2 部分基本身份验证方案(第 4-5 页) http://www.ietf.org/rfc/rfc2617.txt

巴科斯-诺尔形式的基本身份验证

basic-credentials = base64-user-pass
base64-user-pass  = <base64 [4] encoding of user-pass,
                    except not limited to 76 char/line>
user-pass   = userid ":" password
userid      = *<TEXT excluding ":">
password    = *TEXT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.JS 中的基本 HTTP 身份验证? 的相关文章

随机推荐

  • 如何在 JavaScript 中将公历日期更改为波斯日期?

    谁能帮我在 JavaScript 中将公历日期更改为波斯日期 我想在 HTML 和 JavaScript 中使用它 您可以使用toLocaleDateString let today new Date toLocaleDateString
  • DICOM 文件压缩

    我的工作需要使用 DICOM 文件 每个 DICOM 文件由单个目录中的许多 dcm 文件组成 我需要通过网络发送这些文件 由于文件很大 这个过程在某种程度上是这样的 我也是一名程序员 我想知道压缩此类文件的理想方法是什么 我说的是在本地计
  • Ruby - 如果 url 是重定向,如何下载文件?

    如果 url 是重定向 Ruby 如何下载文件 我正在尝试下载这个网址 soundcloud com stereo f cohete amigo download 重定向是这样的 ec media soundcloud com HNIGsu
  • 如何在 templatete js 之后包含组件 js

    我在 templatete index php 上添加了 javascript doc JFactory getDocument doc gt addScript this gt baseurl templates this gt temp
  • 获取终端中可用线路的数量

    如何找到终端中的可用线路数量 最好以跨平台的方式 但欢迎任何建议 甚至特定于操作系统 终端的高度和长度可以使用以下公式找到os https docs python org 3 library os html querying the siz
  • 暂停本地通知

    我正在开发一个警报应用程序 并为此使用本地通知 现在我想为我的闹钟添加贪睡功能 我在Google上搜索发现iPhone不支持此类功能 但还有其他方法可以做到这一点吗 据我所知 当通知窗口弹出时 您无法添加自定义行为 但 你可以这样尝试 用户
  • 我们如何创建一个更大的中心 UITabBar Item

    我想知道我们如何创建一个更大的中心 UITabBar 如下图所示 真的很漂亮 单击要突出显示的特定选项卡栏项目的视图控制器内的选项卡栏按钮 删除文本 只需将标签栏按钮的图像插入顶部设置为 25即可 就像下图一样 在那之后 goto asse
  • Vim 语法文件与 \zs 不匹配

    我试图通过更改 fsharp 语法文件中的这一行 来自this https github com fsharp vim fsharp插件 来自 syn match fsharpModule
  • 如何在Python中打印命令?

    我不从事编程领域 但最近对 Python 感兴趣 我正在编写一些函数 但为了调试 我需要查看正在运行哪些命令 例如 def foo for i in xrange 0 5 a 1 i 是否可以让解释器输出 gt gt gt for i in
  • 在 JQueryUI 选项卡选择上加载 ASP.NET MVC 部分视图

    我一直在寻找最后一天 找不到在过去一两年内提出的关于这个特定主题的任何内容 并且由于 JQuery 似乎相当多地弃用了一些东西 因此就当前的情况提出这个问题似乎是公平的jQuery API 对 JQuery 有点陌生 我想知道这一点 如果我
  • 具有动态宽度的居中固定 div (CSS)

    我有一个 div 具有以下 CSS some kind of popup position fixed top 100px min height 300px width 90 max width 900px 现在 我怎样才能让这个div居中
  • 高阶函数和柯里化函数之间的区别

    我在读一本书 使用 F 进行函数式编程 https rads stackoverflow com amzn click com 1107684064 which 第 33 页 在 部分高阶函数的声明 我们已经看到了高阶内置函数 例如 和 并
  • 跨多个工作表的 VBA 宏

    我正在尝试运行一个在多个工作表上执行功能的宏 假设我已经在工作表 4 上分配了宏按钮 我已经列出了我希望它逐步执行的功能 1 选择工作表 4 中的某些单元格并复制到工作表 4 中的相邻单元格 2 删除工作表 3 中的单元格区域 3 剪切工作
  • 根据语言重定向用户

    我有以下代码
  • 捕获右键单击 AS3

    是否可以在Flash AS3 中捕获右键单击 没有 JQuery JavaScript 当右键单击被捕获时 我需要暂停游戏 所以我不太想禁用上下文菜单 因为我只是想告诉发生了右键单击 我可以添加一个 EventListener 吗 还有其他
  • 具有多个参数的复杂排序?

    我有一个元组列表 li fink 3 flip 3 flock 4 foo 12 foot 20 football 20 futz 10 flip 3 flank 3 flop 3 如何首先按血统编号对列表进行排序 然后按字母顺序降序排序
  • 耙子中止! nil:NilClass 的未定义方法“先决条件”

    剧透 这是一个过时的版本rspec rails gem 在将我的 sqlite3 gem 移动到开发块中 然后运行 rake db migrate 以确保一切仍然有效之后 我在从 Rails 项目目录发出的任何 rake 命令中都遇到了此错
  • 如何使用poco实体生成器

    我用的是VS2010 下载了C POCO 实体生成器 http visualstudiogallery msdn microsoft com en us 23df0450 5677 4926 96cc 173d02752313并安装了它 现
  • GetProcAddress 以及所有已加载的库

    With dlopen你可以提供NULL作为库名称并获取一个句柄 使您可以在其中查找符号any加载的库的数量 如果文件名是 NULL 指针 则返回的句柄是 主程序 当赋予 dlsym 时 该句柄会导致搜索 主程序中的符号 后面是加载的所有共
  • Node.JS 中的基本 HTTP 身份验证?

    我正在尝试使用 NodeJS 编写一个 REST API 服务器 就像使用的那样Joyent http api no de 一切都很好 除了我无法验证普通用户的身份验证 如果我跳到终端并执行curl u username password