maxime-rainville/silverstripe-auth0

Auth0 验证器,用于 SilverStripe 4。

安装: 29

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 4

分支: 3

开放问题: 8

类型:silverstripe-vendormodule

dev-master 2020-04-01 01:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:48:47 UTC


README

本模块提供了一种方式,可以在 Auth0 上验证 SilverStripe 用户。

什么是 Auth0?

Auth0 是一个身份服务提供商。它允许您轻松设置单点登录和社会登录等功能。

为什么要在 SilverStripe 中使用 Auth0?

假设您想快速允许用户使用 Facebook 或 Google 进行注册/登录。使用此模块,您可以在几分钟内完成此操作。

假设您管理着数十个网站。使用此模块,您可以在 Auth0 中管理所有网站的权限,并拥有一个单一的事实来源。

要求

  • silverstripe/framework: ^4.0
  • auth0/auth0-php: ^5.1

安装和基本设置

根据您的用例,使模块正常工作的具体设置可能会有很大差异。然而,以下步骤将是所有用例的起点。

先决条件

您需要一个功能正常的 SilverStripe 网站,以及一个有效的电子邮件地址的活跃管理员账户。

在此设置中,Auth0 完全接管了用户身份验证。因此,如果您没有现有的管理员账户,您将无法登录 CMS。

如果您禁用此模块,则您的原始凭据仍然有效。

安装

composer require maximerainville/silverstripe-auth0

设置 Auth0 账户和应用程序

请按照 SSO for Regular Web Apps: Auth0 Configuration 教程中的步骤进行操作。请确保至少配置一种连接类型(例如:Facebook、Google 等)

当被要求提供回调 URL 时,输入 http://example.com/Security/login/callback,将 http://example.com/ 替换为您的 SilverStripe 网站根 URL。

包括将使用此 Auth0 账户进行身份验证的所有域和协议变体。

在您的 Auth0 应用程序设置页面上,您将提供

  • 一个 Auth0 域;
  • 一个客户端 ID;
  • 一个客户端密钥。

您将在下一步需要这些信息。

配置您的 SilverStripe 网站

将以下密钥添加到您的 SilverStripe .env 文件中,并输入上一步骤中的值

  • AUTH0_DOMAIN ;
  • AUTH0_CLIENT_ID ;
  • AUTH0_CLIENT_SECRET。

运行网站的 dev/build,您应该已经设置好了。

尝试使用它

如果您尝试访问任何需要身份验证的页面,而不是被重定向到 SilverStripe 登录页面,您将被重定向到您的 Auth0 身份验证屏幕。在他们的第一次登录时,如果用户使用的是社交媒体提供商,他们将被要求授权您的 Auth0 应用程序访问他们的账户。

一旦用户同意,他们将被重定向到您的网站。如果他们在您的网站上(基于他们的电子邮件地址)有现有账户,他们将登录。

如果用户没有现有账户,默认行为是拒绝访问。

如果您想允许其他用户访问,您只需像平时一样在 CMS 中创建成员即可。只要他们的电子邮件与 Auth0 提供的标识匹配,他们就会被允许进入。

请注意,在此设置中,每个用户的权限仍然完全由 SilverStripe 管理。Auth0 只是一个身份提供者。

替代设置

基本示例旨在简单,以便您可以在此基础上构建。此模块设计为灵活,您可以轻松地根据需求定制其行为。

以下是一些示例用例及其实现说明。它们按照复杂度的增加顺序排列。

  1. 允许任何人注册。
  2. 如果满足某些条件,则允许注册。
  3. 通过Auth0规则的基本授权提供程序。
  4. 通过Auth0授权扩展的高级授权提供程序