为Distill/Quarto网站添加用户名密码登录功能(基于R)
针对Distill/Quarto静态网站的简易登录验证方案
由于GitHub Pages仅支持静态托管,无法直接实现服务器端身份验证,以下提供客户端JS+R配置的简易登录方案,适合部门内部小范围使用:
步骤1:定义合法用户凭证
创建credentials.R脚本,存储内部用户的用户名和密码:
# credentials.R valid_users <- list( 张工 = "dept_zhang_2024", 李工 = "dept_li_2024" ) # 转换为JSON格式,供前端JS读取 valid_users_json <- jsonlite::toJSON(valid_users)
步骤2:Distill网站实现登录验证
在你的Distill首页(如index.Rmd)中嵌入登录界面和验证逻辑:
--- title: "部门内部专属网站" output: distill::distill_article --- ```{r setup, include=FALSE} # 加载用户凭证配置 source("credentials.R")
内部用户登录
## 步骤3:Quarto迁移适配 后续迁移到Quarto时,逻辑完全一致,仅需将文档后缀改为`.qmd`,YAML格式微调即可: ```markdown --- title: "部门内部专属网站" format: html --- ```{r setup, include=FALSE} source("credentials.R")
## 注意事项 - 该方案为**客户端验证**,密码会以明文形式存在页面源码中,仅适合信任的内部环境,请勿用于存储敏感数据。 - 如果需要更高安全性的验证,建议部署到支持服务器端身份验证的平台(如结合Shiny、Netlify身份服务等)。 内容的提问来源于stack exchange,提问作者braunrs
相关产品推荐
相关产品推荐

