node.js - 创建中间件实时双因素身份验证
问题描述
尝试开发我自己的 2 因素身份验证。
本质上,用户访问端点但提示“等待身份验证”页面。这允许管理员“单击按钮”,从而允许该用户实时访问端点。
我目前正在用 NodeJS 编写它,特别是使用 socket.io,但不确定这是否正确。我不介意从头开始并考虑到特定的技术,但这就是我到目前为止所得到的。
const express = require("express");
const router = express.Router();
const http = require("http");
const server = http.createServer();
const io = require("socket.io")( server, { cors: { origin: "http://localhost:5000", methods: ["GET", "POST"]}});
io.on("connection", socket => {
console.log("Web Socket is running!");
function middleware(req, res, next)
{
socket.on("message", message => {
message == "true" ? next() : res.status(401).json({ Message: "Haha nope"})
})
}
socket.on("message", message => {
console.log("Button was pressed!: ", message);
})
router.use("/session/:sessionId", middleware, (req, res) => {
let { sessionId } = req.params;
res.render("success.html");
})
})
router.use("/button", (req, res) => { res.render("button.html")})
server.listen(3000);
module.exports = router;
到目前为止,我正在尝试使用套接字 IO 作为中间件,因此每当管理员按下按钮时,都允许用户进入,即“next()”。有什么建议么?
解决方案
推荐阅读
- python - 在 Bokeh 中使用 TextInput 字段进行过滤
- css - 当某个部分在 Gatsby 的同一页面上处于活动状态时,导航栏上的自定义样式
- python - 在 Python 中通过字典(键和值)迭代字符串列表
- react-native - react native react-native-svg-transformer 得到错误反应未定义
- javascript - 使用角度将图像从ckeditor4上传到firebase
- pandas - pandas DataFrame:用每个时期的列中位数替换nan值
- python - 如何在 Python 的方法装饰器中使用类属性?
- google-sheets - Formatting IMPORTXML Xpath query into readable data for Google Sheets
- replace - 在 boost build/b2/bjam 中替换列表中的模式
- php - 背包管理员 CRUD 中的“参数太少”错误