当需要合并这两个逻辑时,您必须:
- 移入
polished_config()
-- globals.R
> golem::runApp()
[启动全局设置brochureApp()
]
run_app <- function(
onStart = NULL,
options = list(),
enableBookmarking = NULL,
...
) {
# old 'globals.R' logic
polished_config(
app_name = "humblFinance",
api_key = "2JmavWZtcHBIifVl0FpPtczZjk7zfhvV6O"
)
with_golem_options(
app = brochureApp(
# Putting the resources here
golem_add_external_resources(),
page1(),
),
golem_opts = list(...)
)
}
- 包装每个
brochure::page() ui/server with
抛光的::secure_ui/server()`
# an example login page
login <- function(id = "login", href = "/login") {
page(
href = href,
ui = secure_ui(
mod_login_ui(id = id),
sign_in_page_ui = sign_in_custom()
),
server = secure_server(
function(input, output, session) {
mod_login_server(id = id)
}
)
)
}
笔记
sign_in_custom()
是一个返回自定义 UI 对象polished::sign_in_default()
以创建个人业务网页的函数。我建议包装polished::sign_in_default()
在自定义全局函数中,因为您需要在任何时候都定义它,brochure::page()
因为您希望在polished
身份验证之后受到保护。
一旦您通过抛光验证了一个页面,您将能够在仍然登录时访问所有其他受保护的页面。注销并尝试访问任何一个受保护的页面将导致自定义登录页面