node.js - Morgan Logging - 是否可以从请求标头记录用户名?如何?
问题描述
app.use(morgan(function (tokens, req, res) {
console.log(req)
try {
let logData = {
morganLogStream: [
tokens['date'](req, res),
' Type-', tokens.method(req, res, 'Type'),
' Url-', tokens.url(req, res).split('?')[0],
' Status-', tokens.status(req, res),
' Content_Length-', tokens.res(req, res, 'content-length'),
' Response_Time-', tokens['response-time'](req, res), 'ms',
].join('')
}
}))
我正在使用带有 kerberos 的基本身份验证。我可以看到授权标头,但无法获取值。
解决方案
我能做的最好的就是:
new Buffer(req.headers.authorization.split(' ')[1], 'base64').toString('ascii').split(':')[0] : ''
返回用户名。我希望 thr 是摩根图书馆的任何直接选择。
推荐阅读
- typescript - Mocha WebStorm 集成
- python - 没有在 django 框架中显示标题
- javascript - 如何在 Android 中添加通知徽章计数?
- java - ZeroMQ PUB/SUB 拓扑在同一台机器上
- mapstruct - 从 ModelMapper 升级到 MapStruct 好不好?
- android - Kotlin 的 MVVM 问题 - 模块化出现一些错误
- mysql - MySQL:java.sql.SQLException:外键约束'INCORRECT_ANSWER_FK01'中的引用列和引用列不兼容
- api - 来自后部导航应用程序在颤动中不刷新
- mysql - 将文本值与 LEFT JOIN 合并在一列中,并将 NULL 替换为预定义的措辞
- mysql - 如果未保存原始文件的大小,是否可以获得 MySQL blob 原始文件大小?