88 lines
34 KiB
HTML
88 lines
34 KiB
HTML
<!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="折叠侧边栏分类 '部署指南'" 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="展开侧边栏分类 '用户指南'" 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="展开侧边栏分类 '贡献指南'" 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 管理控制台中,导航到"外观"</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 管理控制台中,导航到"连接器"</li>
|
||
<li>添加社交登录连接器(如 Google、GitHub、微信等)</li>
|
||
<li>按照 |