写于 2025 年 7 月。

不知为了什么,反正我就是想给本博客添加密码,然而博客是纯静态的,所以想着用一个自建 API 实现密码的验证。免费的API托管商有很多,就选用Vercel吧。

参考文献:https://blog.tangly1024.com/article/vercel-free-serverless-api

文中已经讲得很详细了,需要补充的是,密码验证的API本体TypeScript代码

import { VercelRequest, VercelResponse } from '@vercel/node';
module.exports = async (req: VercelRequest, res: VercelResponse) => {
    const key1 = req.query.key1;
    const key2 = req.query.key2;
    const key3 = req.query.key3;
    let data: { msg: string; };
    if (key1 === "/*字符串1*/" && key2 === "/*字符串2*/" && key3 === "/*字符串3*/") {
        data = {
            msg: "ok"
        };
    }
    else {
        data = {
            msg: "no"
        };
    }
    res.status(200).json(data);
}

也是简单明了。

然后输入vercel --prod部署,API部署到公网后,浏览器地址栏输入API地址+?key1=字符串1&key2=字符串2&key3=字符串3应该能得到JSON{"msg":"ok"}的输出,其他情况则是{"msg":"no"},然后这个API就能用了,只需要写写简单的前端。

前端使用了js fetch 方法,正当我开开心心预览时,首先是请求被死循环溢出内存(还好电脑内存够),然后是——经典的CORS跨域问题,完了,用的Github pages,无解。

算了,只能用前端的方式实现密码验证了。最后实现了——博客隐私进一步加强😆(不过还是不能用第一人称作文,因为并非强加密)

大概的功能就是输入三次错误的密码拉进小黑屋一段时间,输入正确的密码获得一段时间的”豁免权“——嗯,这跟手机锁屏很类似。

- Total words: 700 -