当前位置: 首页 > 知识库问答 >
问题:

如何在node.js中使用基本身份验证从url获取用户名和密码?[副本]

贺功
2023-03-14

我需要获取浏览器从url发送到node.js应用程序的用户名和密码。

我翻遍了各种文件和物品,但找不到任何有用的东西。有人知道怎么做吗?使用身份验证头不是一个选项,因为现代Bowser不设置它们。

https://username:password@myurl.com/
        =================
//         /\
//         ||
// I need this part

谢谢你的帮助!

共有3个答案

冯文彬
2023-03-14

这正是您想要的:

http://nodejs.org/api/url.html

如果您想知道从何处获取URL本身,则会将其传递到请求对象中,也称为“路径”:

Node.js:从请求获取路径

朱通
2023-03-14

用户名:密码包含在授权标头中,作为一个基数64编码的字符串:

http.createServer(function(req, res) {
  var header = req.headers['authorization'] || '',        // get the header
      token = header.split(/\s+/).pop()||'',            // and the encoded auth token
      auth = new Buffer(token, 'base64').toString(),    // convert from base64
      parts=auth.split(/:/),                          // split on colon
      username=parts[0],
      password=parts[1];

  res.writeHead(200,{'Content-Type':'text/plain'});
  res.end('username is "'+username+'" and password is "'+password+'"');

}).listen(1337,'127.0.0.1');

请参阅本文:Node.JS中的基本HTTP身份验证?

裴嘉良
2023-03-14

这种身份验证方法称为“基本身份验证”。您可以使用以下代码通过basic authnpm包访问用户名和密码:

const express = require('express');
const basicAuth = require('basic-auth');
let app = express();
app.get('/', function (req, res) {
    let user = basicAuth(req);
    console.log(user.name); //prints username
    console.log(user.pass); //prints password
});
app.listen(3000, function () {});

现在如果您向http://username:password@localhost:3000/此代码将在控制台中打印您的用户名和密码。

请注意,大多数浏览器不再支持这种身份验证方法。

 类似资料:
  • 我有一个django rest_framework API、Swagger和一个Swagger UI。当我没有登录时,我只能看到非常有限的“登录”和“文档”视图。当我登录后,我可以看到很多东西。 我正在尝试使用swagger-代码生成客户端: 然而,它只生成一个非常有限的客户端,提供“登录”和“文档”功能。 如何让 swagger-codegen 知道如何使用 http 基本身份验证登录,以便生成

  • 我正在尝试使用Postman发出POST请求。我拥有的凭据只是一个API密钥,而不是用户名和密码。 现在在Postman中,只要我选择“基本认证”,它就会提示输入用户名和密码。所以我将这些字段留空,然后转到Headers以给出我自己的授权键值,这给我留下了两个“授权”字段,如屏幕截图所示,我得到了无效的身份验证响应。 使用CLI中的CUrl命令授权工作正常。有解决方法吗?

  • 客户已创建密钥存储库并存储凭据。为了验证密钥存储库,我已经在节点中创建了应用程序,并使用客户端id和客户端机密,我能够读取机密。但是现在客户不想使用客户id和客户机密,而是使用AZURE的用户名和密码来访问程序中的keyvault。它是一个没有MFA的keyvault访问的专用用户。 我不确定我们是否可以从节点JS使用用户名和密码访问keyvault。敬请建议。 谢谢

  • 我想知道如何将基本身份验证用户名和密码传递给resttemplate,以便其他应用程序允许我访问endpoint 这是我的restTemplate 我正在尝试从其他微服务应用程序中检索火车列表。 注意:这些所有应用程序都在eureka服务器上运行,这就是为什么我使用应用程序名称 活动名称

  • 我尝试postman使用用户名和密码连接到我的一个web服务,每次更改用户名时,即使用户名与我放在属性文件中的用户名不相同,请求也会被验证

  • 问题内容: 如何在AngularJs中使用基本身份验证?我已经在Google上搜索了,但是资源对我来说不起作用。我 非常 新AngularJS 问题答案: 假设您的html定义如下: 您可以使用以下基本身份验证将后端连接到rest api: 请注意,此代码的大部分是方法。如果不需要支持IE9及更低版本,则可以将其替换为本地JS实现- atob()和btoa():https : //develope