purplespider/silverstripe-discourse-sso
Composer 安装命令:
composer require purplespider/silverstripe-discourse-sso
包简介
Log in to Discourse with Silverstripe member accounts
关键字:
README 文档
README
Allows users to sign in to Discourse with user accounts on your Silverstripe based website.
Note: This becomes the only way to log in to Discourse. To add a "Log in as..." button instead, look into OAuth, instead of SSO (DiscourseConnect).
Installation
- Install into your Silverstripe site via composer:
composer require purplespider/silverstripe-discourse-sso "1.*"
- Add config:
PurpleSpider\DiscourseSSO\DiscourseSSOEndpoint: extensions: - PurpleSpider\MySite\DiscourseSSOEndpointExtension secret: REPLACE-WITH-RANDOM-STRING discourse-sso-url: "https://community.example.com/session/sso_login"
- Set
secretto a random string (min 10 characters) - Change
https://community.example.comto your Discourse install's URL.
- Perform a dev\build:
dev/build?flush=1
- Configure DiscourseConnect in your Discourse Admin.
- Settings > Login >
enable discourse connect:Enabled - Settings > Login >
discourse connect url:https://example.com/discourse/sso(Replaceexample.comwith your Silverstripe site's domain.) - Settings > Login >
discourse_connect_secret: Set to the SAME random string from your Silverstripe config above.
Optional Customisation
- Implement user email validation on the Silverstripe side (essential for Discourse).
- Redirect to Silverstripe logout page after a Discourse log out: Discourse > Settings > Users >
logout redirect:https://example.com/Security/logout?BackURL=/home - Log out user on Discourse after logging out from Silverstripe site.
- Using Discouse API.
- Or use something like https://github.com/johnmap/discourse-sso-logout
- Customise Silverstripe log in message: app/lang/en.yml
en: PurpleSpider\DiscourseSSO\DiscourseSSOEndpoint: LOGINMESSAGE: "To access our forum, please log in or register:"
- Use an Extension to pass through extra member data to Discourse, and/or customise log in authentication, e.g.
<?php namespace YOURNAMESPACE; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\FieldType\DBField; class DiscourseSSOEndpointExtension extends DataExtension { public function updateExtraParameters(&$extraParameters, $member) { $extraParameters['add_groups'] = 'my-members'; $extraParameters['remove_groups'] = 'my-other-members'; $extraParameters['username'] = $member->ForumUsername; $extraParameters['custom.user_field_1'] = "Scotland"; } public function updateAuthentication(&$authenticated, $member, &$action) { if(!$member->EmailIsValidated) { $authenticated = false; $action = $this->owner->render(array( 'Title' => 'Please Verify Your Email Address', 'Content' => DBField::create_field( 'HTMLFragment', "<p>Your email address has not yet been verified.</p>" ), )); } } }
_config/discoursesso.yml
PurpleSpider\DiscourseSSO\DiscourseSSOEndpoint: extensions: - YOURNAMESPACE\DiscourseSSOEndpointExtension
Thanks
Many thanks to Colin Viebrock for their Discourse Single-Sign-On Helper for PHP module which does all the hard work.
purplespider/silverstripe-discourse-sso 适用场景与选型建议
purplespider/silverstripe-discourse-sso 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 24 次下载、GitHub Stars 达 1, 最近一次更新时间为 2022 年 02 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「SSO」 「silverstripe」 「discourse」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 purplespider/silverstripe-discourse-sso 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 purplespider/silverstripe-discourse-sso 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 purplespider/silverstripe-discourse-sso 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Discourse API library for PHP
Packed version of the Discourse API PHP library from discoursehosting.
Analytics chooser extensions for site settings.
Single Sign-On for Discourse
CitaNZ's SilverStripe picture object and field for SilverStripe 4
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2022-02-15