举个实际例子,我正在开发一个集成 DiscourseConnect 的 MediaWiki 认证扩展,它将成为我 MediaWiki 实例上唯一的登录方式。
据我所知,我有两个选择:
- 实现一个 SessionProvider,从 DiscourseConnect 回调中获取用户数据,然后直接将其设置到 MediaWiki 会话中。
- 实现一个 PrimaryAuthenticationProvider,同样从 DiscourseConnect 回调中获取用户数据,但在 MediaWiki 系统中创建自己的用户。
我认为选项 1 看起来更像 SSO 实现,而选项 2 则像“使用 Google 登录”。
选项 1 我唯一知道的缺点是,一旦实施将很难退出。如果不将任何凭据保存到 MediaWiki,我无法想象如何迁移出去并启用本地登录。也许我可以将用户凭据保存在某个地方。
我应该选择哪个选项?
谢谢。