Files
upage-git/upage/deployment/logto.html
2025-09-29 03:02:50 +00:00

88 lines
34 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="zh-Hans" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-deployment/logto" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.0">
<title data-rh="true">Logto 认证集成 | UPage 文档</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://halo-dev.github.io/upage/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://halo-dev.github.io/upage/img/social-card.png"><meta data-rh="true" property="og:url" content="https://halo-dev.github.io/upage/deployment/logto"><meta data-rh="true" property="og:locale" content="zh_Hans"><meta data-rh="true" name="docusaurus_locale" content="zh-Hans"><meta data-rh="true" name="docsearch:language" content="zh-Hans"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Logto 认证集成 | UPage 文档"><meta data-rh="true" name="description" content="UPage 默认仅支持单一匿名用户访问,但您可以通过集成 Logto 实现用户认证,支持多用户登录"><meta data-rh="true" property="og:description" content="UPage 默认仅支持单一匿名用户访问,但您可以通过集成 Logto 实现用户认证,支持多用户登录"><link data-rh="true" rel="icon" href="/upage/../public/favicon.svg"><link data-rh="true" rel="canonical" href="https://halo-dev.github.io/upage/deployment/logto"><link data-rh="true" rel="alternate" href="https://halo-dev.github.io/upage/deployment/logto" hreflang="zh-Hans"><link data-rh="true" rel="alternate" href="https://halo-dev.github.io/upage/deployment/logto" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"部署指南","item":"https://halo-dev.github.io/upage/deployment-guide"},{"@type":"ListItem","position":2,"name":"Logto 认证集成","item":"https://halo-dev.github.io/upage/deployment/logto"}]}</script><link rel="stylesheet" href="/upage/assets/css/styles.8ea0c4aa.css">
<script src="/upage/assets/js/runtime~main.8350f77c.js" defer="defer"></script>
<script src="/upage/assets/js/main.648541e0.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="跳到主要内容"><a class="skipToContent_SnWU" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><nav aria-label="主导航" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/upage/"><div class="navbar__logo"><img src="/upage/img/logo.svg" alt="UPage Logo" class="themedComponent_PxYp themedComponent--light_BsnN"><img src="/upage/img/logo.svg" alt="UPage Logo" class="themedComponent_PxYp themedComponent--dark_P6BI"></div><b class="navbar__title text--truncate">UPage</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/upage/">使用文档</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/halo-dev/upage" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_xtnk"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_crTl colorModeToggle_eWi8"><button class="clean-btn toggleButton_BQDk toggleButtonDisabled_lECB" type="button" disabled="" title="system mode" aria-label="切换浅色/暗黑模式当前为system mode"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_KZAc lightToggleIcon_LT1z"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_KZAc darkToggleIcon_fJCx"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_KZAc systemToggleIcon_m6ZP"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_GyVn"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_fO6_"><div class="docsWrapper_G3eT"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_nMBz" type="button"></button><div class="docRoot_iPwj"><aside class="theme-doc-sidebar-container docSidebarContainer_Yovm"><div class="sidebarViewport_e1um"><div class="sidebar_xcav"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_EjuG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/upage/"><span title="首页" class="linkLabel_fmgc">首页</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/upage/quick-start"><span title="快速开始" class="linkLabel_fmgc">快速开始</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink__DnE menu__link menu__link--sublist menu__link--active" href="/upage/deployment-guide"><span title="部署指南" class="categoryLinkLabel_rUKM">部署指南</span></a><button aria-label="折叠侧边栏分类 &#x27;部署指南&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/upage/deployment/docker"><span title="Docker 部署" class="linkLabel_fmgc">Docker 部署</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/upage/deployment/docker-compose"><span title="Docker Compose 部署" class="linkLabel_fmgc">Docker Compose 部署</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/upage/deployment/source"><span title="源码部署" class="linkLabel_fmgc">源码部署</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/upage/deployment/logto"><span title="Logto 认证集成" class="linkLabel_fmgc">Logto 认证集成</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/upage/deployment/others"><span title="其他配置" class="linkLabel_fmgc">其他配置</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/upage/configuration"><span title="配置参考" class="linkLabel_fmgc">配置参考</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink__DnE menu__link menu__link--sublist" href="/upage/user-guide"><span title="用户指南" class="categoryLinkLabel_rUKM">用户指南</span></a><button aria-label="展开侧边栏分类 &#x27;用户指南&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink__DnE menu__link menu__link--sublist" href="/upage/contributing"><span title="贡献指南" class="categoryLinkLabel_rUKM">贡献指南</span></a><button aria-label="展开侧边栏分类 &#x27;贡献指南&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/upage/faq"><span title="常见问题" class="linkLabel_fmgc">常见问题</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_WqOS"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_s9lu"><div class="docItemContainer_Wij8"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_dPwh" aria-label="页面路径"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/upage/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_xzA8"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/upage/deployment-guide"><span>部署指南</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Logto 认证集成</span></li></ul></nav><div class="tocCollapsible_S5VF theme-doc-toc-mobile tocMobile_gigA"><button type="button" class="clean-btn tocCollapsibleButton_wmrO">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>Logto 认证集成</h1></header>
<div class="theme-admonition theme-admonition-info admonition_CpQR alert alert--info"><div class="admonitionHeading_lTaP"><span class="admonitionIcon_Sec2"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>信息</div><div class="admonitionContent__UXo"><p>UPage 默认仅支持单一匿名用户访问,但您可以通过集成 Logto 实现用户认证,支持多用户登录</p></div></div>
<p>UPage 支持与 <a href="https://logto.io/" target="_blank" rel="noopener noreferrer">Logto</a> 集成,提供完整的用户认证体系。本文档将指导您如何配置 UPage 与 Logto 的集成。</p>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="什么是-logto">什么是 Logto<a href="#什么是-logto" class="hash-link" aria-label="什么是 Logto的直接链接" title="什么是 Logto的直接链接" translate="no"></a></h2>
<p>Logto 是一个开源的身份验证和授权解决方案,提供了完整的用户管理、身份验证和授权功能。通过与 Logto 集成UPage 可以支持用户注册、登录、密码重置等功能,同时提供基于角色的访问控制。</p>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="logto-接入方式">Logto 接入方式<a href="#logto-接入方式" class="hash-link" aria-label="Logto 接入方式的直接链接" title="Logto 接入方式的直接链接" translate="no"></a></h2>
<p>Logto 支持两种接入方式,您可以根据自己的需求选择合适的方式。</p>
<ol>
<li>使用 Logto 官方提供的托管服务 - Logto Cloud。</li>
<li>本地部署开源版 Logto 服务。</li>
</ol>
<div class="theme-admonition theme-admonition-info admonition_CpQR alert alert--info"><div class="admonitionHeading_lTaP"><span class="admonitionIcon_Sec2"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>信息</div><div class="admonitionContent__UXo"><p>两种方式仅在接入方式上有所区别,在配置上完全一致。</p></div></div>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="使用官方托管服务">使用官方托管服务<a href="#使用官方托管服务" class="hash-link" aria-label="使用官方托管服务的直接链接" title="使用官方托管服务的直接链接" translate="no"></a></h3>
<p>访问 <a href="https://logto.io/" target="_blank" rel="noopener noreferrer">Logto 官方网站</a>,注册一个账号即可进行下一步操作。</p>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="本地部署-logto">本地部署 Logto<a href="#本地部署-logto" class="hash-link" aria-label="本地部署 Logto的直接链接" title="本地部署 Logto的直接链接" translate="no"></a></h3>
<p>UPage 提供了一个简化的 Logto 部署配置。在 UPage 项目目录下,您可以找到 <code>logto/docker-compose.yaml</code> 文件以及 <code>.env</code> 文件。</p>
<p>如果是开发环境,执行以下命令:</p>
<div class="language-bash codeBlockContainer_tLQ_ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_HMSW"><pre tabindex="0" class="prism-code language-bash codeBlock_HMKa thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tPUF"><span class="token-line" style="color:#393A34"><span class="token plain">cd ./logto</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">docker-compose up -d</span><br></span></code></pre></div></div>
<p>如果是生产环境,执行以下命令:</p>
<div class="language-bash codeBlockContainer_tLQ_ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_HMSW"><pre tabindex="0" class="prism-code language-bash codeBlock_HMKa thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tPUF"><span class="token-line" style="color:#393A34"><span class="token plain">curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/docker-compose.yaml -o ~/upage/logto/docker-compose.yaml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/.env -o ~/upage/logto/.env</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cd ~/upage/logto</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">docker-compose up -d</span><br></span></code></pre></div></div>
<p>这将启动 Logto 服务,默认情况下可以通过 <code>http://localhost:3002</code> 访问 Logto 管理控制台。</p>
<div class="theme-admonition theme-admonition-caution admonition_CpQR alert alert--warning"><div class="admonitionHeading_lTaP"><span class="admonitionIcon_Sec2"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent__UXo"><p>在生产环境部署时,请务必修改 <code>.env</code> 文件中的 <code>LOGTO_ENDPOINT</code><code>LOGTO_ADMIN_ENDPOINT</code> 以及 <code>LOGTO_POSTGRES_PASSWORD</code> 配置。</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="配置-logto">配置 Logto<a href="#配置-logto" class="hash-link" aria-label="配置 Logto的直接链接" title="配置 Logto的直接链接" translate="no"></a></h2>
<ol>
<li>访问 Logto 管理控制台,</li>
<li>创建一个新的应用程序:<!-- -->
<ul>
<li>应用类型:传统网页应用</li>
<li>应用名称UPage</li>
<li>重定向 URIs<code>http://${UPAGE_URL}/api/auth/callback</code></li>
<li>退出登录后重定向 URIs<code>http://${UPAGE_URL}</code></li>
<li>CORS 允许的来源:<code>http://${UPAGE_URL}</code></li>
<li>其他配置根据实际情况填写</li>
</ul>
</li>
<li>记录应用程序的 ID 和密钥,这些将用于配置 UPage</li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="配置-upage-与-logto-集成">配置 UPage 与 Logto 集成<a href="#配置-upage-与-logto-集成" class="hash-link" aria-label="配置 UPage 与 Logto 集成的直接链接" title="配置 UPage 与 Logto 集成的直接链接" translate="no"></a></h2>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="环境变量配置">环境变量配置<a href="#环境变量配置" class="hash-link" aria-label="环境变量配置的直接链接" title="环境变量配置的直接链接" translate="no"></a></h3>
<p>在 UPage 的环境变量中配置 Logto 相关参数:</p>
<div class="language-bash codeBlockContainer_tLQ_ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_HMSW"><pre tabindex="0" class="prism-code language-bash codeBlock_HMKa thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tPUF"><span class="token-line" style="color:#393A34"><span class="token plain"># 启用 Logto 认证</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_ENABLE=true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Logto LOGTO_ENDPOINT 地址</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_ENDPOINT=http://localhost:3001</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Logto 应用程序 ID</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_APP_ID=your-app-id</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Logto 应用程序密钥</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_APP_SECRET=your-app-secret</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Logto 用于加密 cookie 的密钥,随机生成一个 32 位密钥即可</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_COOKIE_SECRET=your-cookie-secret</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 填写 UPage 地址,根据实际部署地址修改</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOGTO_BASE_URL=http://localhost:3000</span><br></span></code></pre></div></div>
<p>如果使用 Docker compose 部署 UPage<code>docker-compose.yml</code> 文件中添加这些环境变量:</p>
<div class="language-yaml codeBlockContainer_tLQ_ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_HMSW"><pre tabindex="0" class="prism-code language-yaml codeBlock_HMKa thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tPUF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">services</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">upage</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># ... 其他配置</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">environment</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># ... 其他环境变量</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_ENABLE=true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_ENDPOINT=http</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//logto</span><span class="token punctuation" style="color:#393A34">:</span><span class="token number" style="color:#36acaa">3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_APP_ID=your</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">app</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">id</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_APP_SECRET=your</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">app</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">secret</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_COOKIE_SECRET=your</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">cookie</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">secret</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> LOGTO_BASE_URL=http</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//localhost</span><span class="token punctuation" style="color:#393A34">:</span><span class="token number" style="color:#36acaa">3000</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="配置说明">配置说明<a href="#配置说明" class="hash-link" aria-label="配置说明的直接链接" title="配置说明的直接链接" translate="no"></a></h3>
<table><thead><tr><th>环境变量</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>LOGTO_ENABLE</code></td><td>是否启用 Logto 认证</td><td><code>true</code></td></tr><tr><td><code>LOGTO_ENDPOINT</code></td><td>Logto 服务的 URL</td><td><code>http://localhost:3001</code></td></tr><tr><td><code>LOGTO_APP_ID</code></td><td>Logto 应用程序 ID</td><td><code>your-app-id</code></td></tr><tr><td><code>LOGTO_APP_SECRET</code></td><td>Logto 应用程序密钥</td><td><code>your-app-secret</code></td></tr><tr><td><code>LOGTO_COOKIE_SECRET</code></td><td>用于加密 cookie 的密钥</td><td><code>00bf44b6ceaa648eca6ad172f0cd8c8c</code></td></tr><tr><td><code>LOGTO_BASE_URL</code></td><td>UPage 地址</td><td><code>http://localhost:3000</code></td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="logto-使用技巧">Logto 使用技巧<a href="#logto-使用技巧" class="hash-link" aria-label="Logto 使用技巧的直接链接" title="Logto 使用技巧的直接链接" translate="no"></a></h2>
<div class="theme-admonition theme-admonition-tip admonition_CpQR alert alert--success"><div class="admonitionHeading_lTaP"><span class="admonitionIcon_Sec2"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>提示</div><div class="admonitionContent__UXo"><p>UPage 集成 Logto 步骤已完成,以下内容是 Logto 的特殊使用技巧,供扩展阅读,如无定制化需求可忽略。</p></div></div>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="自定义登录界面">自定义登录界面<a href="#自定义登录界面" class="hash-link" aria-label="自定义登录界面的直接链接" title="自定义登录界面的直接链接" translate="no"></a></h3>
<p>Logto 提供了自定义登录界面的功能:</p>
<ol>
<li>在 Logto 管理控制台中,导航到&quot;外观&quot;</li>
<li>自定义登录页面的样式、颜色和品牌元素</li>
<li>预览并保存更改</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="配置社交登录">配置社交登录<a href="#配置社交登录" class="hash-link" aria-label="配置社交登录的直接链接" title="配置社交登录的直接链接" translate="no"></a></h3>
<p>Logto 支持多种社交登录方式:</p>
<ol>
<li>在 Logto 管理控制台中,导航到&quot;连接器&quot;</li>
<li>添加社交登录连接器(如 Google、GitHub、微信等</li>
<li>按照向导完成配置</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_hmm4" id="配置多因素认证">配置多因素认证<a href="#配置多因素认证" class="hash-link" aria-label="配置多因素认证的直接链接" title="配置多因素认证的直接链接" translate="no"></a></h3>
<p>启用多因素认证以提高安全性:</p>
<ol>
<li>在 Logto 管理控制台中,导航到&quot;安全&quot;</li>
<li>启用多因素认证</li>
<li>配置多因素认证方式(如 TOTP、短信等</li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_hmm4" id="下一步">下一步<a href="#下一步" class="hash-link" aria-label="下一步的直接链接" title="下一步的直接链接" translate="no"></a></h2>
<ul>
<li>阅读<a href="/upage/user-guide/basics">用户指南</a>学习如何使用 UPage 创建网页</li>
<li>探索<a href="/upage/configuration">配置参考</a>了解所有可用的配置选项</li>
</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/logto.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__ZHw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_CpfT"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/upage/deployment/source"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">源码部署</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/upage/deployment/others"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">其他配置</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_dKl6 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#什么是-logto" class="table-of-contents__link toc-highlight">什么是 Logto</a></li><li><a href="#logto-接入方式" class="table-of-contents__link toc-highlight">Logto 接入方式</a><ul><li><a href="#使用官方托管服务" class="table-of-contents__link toc-highlight">使用官方托管服务</a></li><li><a href="#本地部署-logto" class="table-of-contents__link toc-highlight">本地部署 Logto</a></li></ul></li><li><a href="#配置-logto" class="table-of-contents__link toc-highlight">配置 Logto</a></li><li><a href="#配置-upage-与-logto-集成" class="table-of-contents__link toc-highlight">配置 UPage 与 Logto 集成</a><ul><li><a href="#环境变量配置" class="table-of-contents__link toc-highlight">环境变量配置</a></li><li><a href="#配置说明" class="table-of-contents__link toc-highlight">配置说明</a></li></ul></li><li><a href="#logto-使用技巧" class="table-of-contents__link toc-highlight">Logto 使用技巧</a><ul><li><a href="#自定义登录界面" class="table-of-contents__link toc-highlight">自定义登录界面</a></li><li><a href="#配置社交登录" class="table-of-contents__link toc-highlight">配置社交登录</a></li><li><a href="#配置多因素认证" class="table-of-contents__link toc-highlight">配置多因素认证</a></li></ul></li><li><a href="#下一步" class="table-of-contents__link toc-highlight">下一步</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">文档</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/upage/quick-start">快速开始</a></li><li class="footer__item"><a class="footer__link-item" href="/upage/category/deployment-guide">部署指南</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">社区</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/halo-dev/upage/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issues<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_xtnk"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/halo-dev/upage/discussions" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Discussions<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_xtnk"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">更多</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/halo-dev/upage" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_xtnk"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 凌霞软件. Built with Docusaurus.</div></div></div></footer></div>
</body>
</html>