首页 > 解决方案 > 创建中间件实时双因素身份验证

问题描述

尝试开发我自己的 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()”。有什么建议么?

标签: node.jssocket.iomiddlewaretwo-factor-authentication

解决方案


推荐阅读