如何为 Halo 接入 Logto 认证
Halo 有着强大且灵活的扩展机制,包括与用户认证相关的扩展,我们可以通过插件来集成三方的认证系统,比如 OAuth 协议、OIDC、LDAP 等。
本文将以
前置条件
一个 Logto 平台实例
一个 Halo 实例
https://www.halo.run/store/apps/app-IXZkJ 插件(目前包含在https://www.lxware.cn/halo 中)
部署 Logto 平台
部署 Logto 通常有两种方式:自托管开源版本或者使用 Logto 云服务。
云服务
访问
需要提前在 https://logto.io/pricing 页面了解其定价策略。
自托管
可以参考官方文档:
如果你正在使用 1Panel,也可以在 1Panel 的应用商店一键部署 Logto:
创建 Logto 应用
登录到 Logto 的管理后台,点击左侧导航栏的 全部应用 菜单,点击 创建应用 按钮,创建一个 OIDC 应用。
创建完成后,暂时保持在当前页面,接下来需要先在 Halo 中进行相应配置。
配置 Halo 认证插件
安装
安装完成之后,点击左侧菜单的 身份认证,然后再点击右上角的 新建 按钮。
详细配置如下:
显示名称:按照需求填写即可,最终会显示在登录的认证方式中
描述:按照需求填写即可
图标:最终会显示在登录的认证方式中
认证类型:选择
oidc
认证方法:选择
client_secret_basic
授权类型:选择
authorization_code
作用域:添加一个
openid
授权地址:对应 Logto 配置页面中的 授权端点
认证地址:对应 Logto 配置页面中的 Token 端点
用户信息地址:对应 Logto 配置页面中的 用户信息端点
用户唯一属性:填写
sub
输入完成后保存,然后点击进入新建的认证方式配置页面:
在 设置 选项卡中,填写配置:
Client ID:对应 Logto 配置页面中的 应用 ID
Client Secret:对应 Logto 配置页面中的 应用密钥
然后在 客户端 选项卡中,复制 回调地址 并粘贴到 Logto 配置页面中的 重定向 URIs 中。
需要特别注意,需要将
{baseUrl}
替换为你的 Halo 实例的 URL。
启用认证方式
配置完成后,还需要回到认证方式列表页面,启用新创建的认证方式。
测试
返回 Halo 的登录页面,可以看到已经添加了新的认证方式:
使用 Logto 的账号登录,即可完成与 Halo 账号的绑定:
最后,我们还可以在 Halo 的个人中心登录方式中看到已经绑定了我们新建的认证方式: