我需要获取浏览器从网址发送到我的node.js应用程序的用户名和密码。
我挖掘了各种文档和对象,但我找不到任何有用的东西。有谁知道怎么做?使用身份验证标头不是一种选择,因为现代的bowsers不会设置它们。
https://username:password@myurl.com/
=================
// /\
// ||
// I need this part
感谢您的帮助!
答案 0 :(得分:2)
此身份验证方法称为“基本身份验证”。您可以使用以下代码通过basic-auth
npm软件包访问用户名和密码:
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/
发送请求,则此代码将在控制台中打印您的用户名和密码。
请注意,大多数浏览器不再支持这种身份验证方法。
答案 1 :(得分:1)
答案 2 :(得分:1)
用户名:密码作为base64编码的字符串包含在Authorization标头中:
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');
答案 3 :(得分:1)
Store pictures in H2 database spring boot thymleaf或IE不再支持<img th:if="*{photo != null}"
th:src="@{'data:image/jpg;base64,' + *
{T(org.springframework.util.Base64Utils).
encodeToString(photo)}}"/>
格式,如果还没有其他人效仿的话,也不会感到惊讶。
(摘自T.J. Crowder评论Chrome)
答案 4 :(得分:0)
/createserver/:username/:password
let params={
userName:req.params.username,
password:req.params.password
}
console.log(params);
这就是您想要的吗??
答案 5 :(得分:-2)
服务器可以在请求对象中访问URL:
http.createServer(function(req, res) {
var url = req.url
console.log(url) //echoes https://username:password@myurl.com/
//do something with url
}).listen(8081,'127.0.0.1');