burnthebook / craft-flarum-sso
为Craft 4添加单点登录(SSO),将Flarum作为从属
Requires
- php: >=8.0.2
- craftcms/cms: ^4.5.0|^5.0.0
- guzzlehttp/guzzle: ^7.8
- josantonius/cookie: ^2.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- symfony/var-dumper: ^6.0
README
为Craft 4添加单点登录(SSO),将Flarum作为子项目
需求
此插件需要Craft CMS 4.5.0或更高版本,以及PHP 8.0.2或更高版本。
此插件还需要在您的Flarum安装上安装和配置Flarum SSO扩展。
安装
您可以从插件商店或使用Composer安装此插件。
从插件商店
转到项目控制面板中的插件商店,搜索“Flarum SSO for Craft 4”,然后点击“安装”。
使用Composer
打开您的终端并运行以下命令
# go to the project directory cd /path/to/my-project.test # tell Composer to load the plugin composer require burnthebook/craft-flarum-sso # tell Craft to install the plugin ./craft plugin/install flarum-sso
配置
要配置插件,请转到设置 > 插件(页面底部部分) > Flarum SSO for Craft 4,并点击图标。
有三个必填设置
Flarum URL 您的Flarum安装的URL。建议使用Craft CMS安装的子域名,例如 https://discuss.craftcms.com
Flarum API密钥 您手动插入到Flarum安装的api_keys数据库表中的API密钥
论坛SSO Cookie - 域 SSO Cookie的根域名。如果您的Craft CMS安装是 www.craftcms.com,而您的Flarum安装是discuss.craftcms.com,则将此设置为'craftcms.com'
设置页面上的其余设置都是可选的,并且已预先配置为与您将在Flarum安装上安装的maicol07/flarum-ext-sso
包正确工作,因此除非您需要出于安全原因配置cookie设置,否则可以保持不变。
使用
此插件自动连接到CraftCMS的登录、注册和注销事件,以便在Flarum端复制这些事件。例如,您登录到CraftCMS,您就登录到Flarum。您在CraftCMS上创建账户,您的账户在Flarum上创建。
此外,如果您在Craft CMS上有现有的用户,但在Flarum中不存在,在安装此插件后登录Craft CMS网站,将自动为他们创建Flarum上的用户 - 他们无需再次注册。
故障排除/常见问题解答
问题:我在Craft登录后未登录到Flarum
答案:确保您的根域名匹配,由于cookie的原因,最好将Flarum论坛放在子域名中,而Craft CMS放在另一个子域名或根域名中。
此外,确保您的cookie域名已在插件设置中设置,如配置部分中所述。
例如:如果您的Craft CMS安装是craftcms.com,则希望您的Flarum安装是discuss.craftcms.com,并在插件设置中将cookie域名设置为"craftcms.com"。
问题:我在登录或创建Craft CMS账户时收到“认证失败:未经授权”错误,尽管我知道用户名和密码是正确的
答案:确保您的API密钥在插件设置中正确设置,如配置部分中所述。确保没有前后空格或多余的字符。可选,确保在Flarum api_keys
表中设置的API密钥(必须手动插入)是管理员用户的。
问题:我想查看API返回的更详细的日志,而不是插件输出的友好错误消息
回答:当然,我们记录所有原始错误响应到存储路径下的logs/flarum-sso---
问题:我如何以管理员身份登录Flarum?
回答:由于maicol07/flarum-ext-sso
和Flarum的工作方式,您需要确保Flarum安装和Craft CMS安装的管理员账户具有相同的用户名和密码。然后,当您以管理员身份登录Craft CMS时,您将自动登录到Flarum的管理员账户。在第一次设置Flarum安装时,这一点需要注意。
问题:我的所有Craft CMS用户可以进入Flarum中的用户组以表示他们来自CraftCMS吗?
回答:这个功能(或任何群组功能)目前不支持,但如果有很多兴趣,我们可以考虑实现。
问题:我的用户是否可以在没有Craft CMS账户的情况下登录Flarum?
回答:不,一旦在Craft CMS中安装了此插件并在Flarum中安装了maicol07/flarum-ext-sso,您的用户将需要Craft CMS账户才能登录Flarum。Craft CMS成为父应用程序,Flarum成为子应用程序,因此所有用户管理都应该在CraftCMS内进行。
问题:如果Flarum中已经存在用户怎么办?
回答:此插件旨在与1.0.0版本以来的全新Flarum安装一起使用。如果有很多兴趣,未来我们可能会添加逻辑来检查用户是否已经在Flarum中存在,并在CraftCMS中创建用户,但到目前为止,我们只检查用户是否在Craft CMS中存在,如果存在并且已使用正确的凭据进行身份验证,就在Flarum中创建他们并进行身份验证。