修改hoppscotch支持必须登陆指定用户才可以使用
Hoppscotch 增加SSO登陆
参考 https://blog.peos.cn/2025/08/27/hoppscotch-sso.html
=============================================================================
正文:
虽然 hoppscotch 开源,但是完全是为商业产品开发的。很多功能需要商业化才能使用。
但,好在可以私有化部署,但部署后,如果放公网,所有人都可以使用,有没有办法加一个登陆之后才能使用呢?
如果直接在Nginx上加basic auth,会有很多问题。于是 增加JS逻辑,定时检查是否登陆,检查 登陆用户是否是指定用户,如果不是,调用 退出并刷新页面。
参考以下代码修改(增加到index.html):
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.4.2/jquery.min.js" ></script>
<script>
document.addEventListener("DOMContentLoaded", () =>{
let login_state = localStorage.getItem('login_state');
console.log('login state:', login_state);
var login_box = false;
//定时任务随时检查用户登陆状态及登陆用户是否符合要求
window.timer = setInterval(()=>{
login_state = JSON.parse(localStorage.getItem('login_state'));
//console.log("check login_state:" + login_state);
if(!login_state){
login_box = $("#hoppscotch-modal-portal");
if(login_box.length>0 && $("#hoppscotch-modal-portal").find("button").length>0){
return;
}
if($(".tippy-box").length>0){
logout();
return;
}
let btn = $("header").find("button").last();
if(btn.length>0){
btn.click();
}
}
if(login_state && login_state.email){
$.get("/auth",(res)=>{
if(res.email!=login_state.email){
logout();
}
});
}
},1000);
function logout(){
//这里可以直接判断localstorage字段值,也可以 修改caddy,增加一个auth api
$.get("/backend/v1/auth/logout",res2=>{
localStorage.removeItem("login_state");
window.location.reload();
});
}
});
</script>
<style>
button.inline-flex.items-center.justify-center.font-semibold.transition.whitespace-nowrap.focus\:outline-none.text-secondary.hover\:text-secondaryDark.focus-visible\:text-secondaryDark.p-2{
display:none;
}
</style>
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · 我给开源软件hoppscotch增加了sso单点登陆功能
- · 我的第一个开源框架,webspider
- · docker insepct logtail
- · 解决confluence文件预览问题,中文乱码问题
- · 原创!无插件hack方式实现conflulence open connect sso登陆
- · 利用k8s ingress访问非POD服务
- · 解决vault sidecar认证失败的问题
- · Docker 快速部署 FastAPI 项目
- · docker安装 Confluence9
- · nginx开机启动脚本 nginx.service
- · codium-server.service
- · 单台服务器应用不中断服务热部署滚动更新方案
