今天准备使用Flarum来建立Minecraft服务器论坛,但是服务器已经有了官方网站如果再用Flarum自己的账户系统设置账号密码等未免有些太复杂,抱着这个目的寻找到一种Flarum使用Wordpress账户登录的办法。下边就来介绍如何使用Flarum SSO实现Flarum使用Wordpress账户登录。
0.环境需求
- PHP 7.3+
- PHP JSON 扩展安装并启用
1.Wordpress部分配置
- 进入“仪表盘”,进入“插件”中的“安装插件”。
- 搜索“SSO for Flarum”插件并安装(若找不到可手动安装,WordPress插件地址)。
- 安装结束后启用该插件。
- 在“设置”中寻找“Flarum SSO Settings”,点击进入设置插件。
- 请按照以下说明设置:
- Enable SSO 勾选以开启插件功能。
- Flarum URL 填写您的Flarum论坛的域名,如https://example.com。
- Root Domain 在此处填写您的Wordpress网站地址。
- API Key 您可随机生成一串字符,作者建议生成长度40的字符串以提高安全性,您可使用一款随机密码生成器。请记住此字符串后续Flarum配置仍然需要。
- Password Token 您可随机生成一串字符,作者建议生成长度40的字符串以提高安全性,您可使用一款随机密码生成器。
- Verify SSL 是否验证您的SSL证书。若您使用https协议请务必选择此项以免出现错误,http协议不需要选中此项。
- SSL certificate absolute path 您的域名SSL证书的绝对路径,若您“Verify SSL”勾选才需要填写此部分。
- Update user avatar 传输用户头像,可选。
- 保存更改,完成Wordpress部分设置。
2.Flarum设置
- 在Shell中使用以下命令安装插件
composer require maicol07/flarum-ext-sso
- 进入“后台管理”,找到“SSO (Single Sign On)”,开启插件。
- 修改链接设置,一般的应设置为
- 注册链接:https://你的域名/wp-login.php?action=register
- 登录链接:https://你的域名/wp-login.php?redirect_to=forum
- 退出登录链接:https://你的域名/wp-login.php?action=logout
- 其他设置按照您的情况进行,这里我保留了登录按钮去除了注册按钮。
3.Flarum数据库设置
此处使用phpmyadmin为例,若您使用其他软件请您仿照操作进行,当然您也可以使用SQL语句操作。
首先进入表“API Keys”
进入后,点击上方“插入”选项卡,按下图填写内容
填写完毕后执行。我们可以得知执行的SQL语句形如:
INSERT INTO `api_keys` (`key`, `id`, `allowed_ips`, `scopes`, `user_id`, `created_at`, `last_activity_at`) VALUES
('您先前设置的API Key', 1, NULL, NULL, 您选择的管理员用户ID(是一个int,如“1”), '时间(如“2021-10-10 10:47:20”)', NULL);
至此,您已经完成了设置。
4.测试是否可用
进入您的论坛点击登录,转跳到您的Wordpress网站,输入账号密码登陆后应当转跳回论坛并且登陆上用户。
注意
- API Key中指定的管理员用户wordpress用户名要与Flarum的username一致,否则会跳回Flarum论坛后未显示登录。
- 不要修改Flarum的username,要与wordpress用户名一致才能登陆(由于wordpress用户名不能改所以此处着重强调Flarum)
参考文章
心情表态
+1
+1
+1
+1
+1
+1
你好。这个可以替换掉的 “Wordpress“ 配置吗。比如自己写一个登陆,注册页面
Flarum那边SSO插件设置里可以更改Wordpress这边的请求路径,也许可以替换。具体我也不了解。