Mongoose网络库:如何获取身份验证的用户
mongoose networking library: how to get authenticated user?
我正在使用cesanta mongoose网络库来部署嵌入式服务器。我使用摘要启用了http_auth
。
我怎么知道登录哪个用户?
您的问题有些模糊,因此我假设您主要关心整个会话中的唯一用户,无论是通过IP地址,通过身份验证凭证还是通过其他一些方式。
查看mg_http_server.h
的API参考https://cesanta.com/docs/http/api-server.html
具体来说,我认为您正在寻找的功能" mg_http_parse_header2"。您应该能够使用此功能来解析所需字段的收到的HTTP响应标头。
为" MG_HTTP_PARSE_HEADER2"提供的代码示例几乎正是您所要求的:
char user_buf[20];
char user = user_buf;
struct mg_str hdr = mg_get_http_header(hm, "Authorization");
mg_http_parse_header2(hdr, "username", &user, sizeof(user_buf));
// ... do something useful with user
if (user != user_buf) {
free(user);
}
他们的示例显示了您如何从HTTP标头中的授权字段中提取用户信息。Wikipedia如果您想为自己的应用程序量身定制该示例,则有标准请求字段的列表:
https://en.wikipedia.org/wiki/list_of_http_header_fields
例如,"转发"字段提供了信息以识别客户端的原始IP地址。"授权"字段以易于恢复的格式包含用户名和密码,因此请记住,HTTPS提供了额外的安全层,而普通的HTTP则具有潜在的漏洞。
相关文章:
- LibGit2 SSH身份验证失败
- 为什么 WinInet 在通过 FQDN 连接时无法通过协商自动进行身份验证,但如果通过 IP 连接则成功?
- 如何通过NetHTTPClient在HTTPS中进行身份验证
- 处理身份验证弹出窗口在wxWebView
- 如何测试我的谷歌身份验证器实现?
- 通过 Boost 和 C++ 进行 SMTP 身份验证
- libtorrent是否支持带摘要身份验证的http web种子
- 将Windows身份验证与cpprestsdk一起使用
- OCCI:使用SSL钱包身份验证连接到OracleDB
- 为什么我不能使用外围设备进行身份验证
- 无法使用C++代码向MongoDB进行身份验证
- 模拟的 HTTP 身份验证仅在本地主机上工作
- 使用OpenSSL的SHA 512 HMAC消息身份验证的问题
- Windows 套接字和身份验证构建在包含 Poco-Library 时失败
- 如何对进程进行身份验证
- 如何使用GSOAP初始化服务器上下文以启用简单身份验证(仅服务器身份验证)
- 解析 HTTP 的摘要式身份验证的正确正则表达式模式是什么?
- 无法获取经过 Firebase 身份验证的用户信息 QT C++
- Mongoose网络库:如何获取身份验证的用户
- 如何正确获取摘要式身份验证