cegrent/auth0-laravel

Laravel 插件,帮助使用 auth0 服务进行认证

6.1.0 2020-09-17 21:34 UTC

README

此插件帮助您通过几个简单的步骤将您的 Laravel WebApp 集成到 Auth0,以实现单点登录。

  • 主分支针对 Laravel 6 兼容性。
  • 3.x 分支(不再维护)针对 Laravel 5.2 兼容性。
  • 2.x 分支(不再维护)针对 Laravel 5.0 和 5.1 兼容性。
  • 如果您使用的是较旧版本(Laravel 4.x),请使用版本 1.0.*(不再维护)

CircleCI Latest Stable Version License Total Downloads

文档

请参阅 Laravel webapp quickstart 了解如何在现有项目中安装此插件或下载预配置的示例项目。以下为特定场景的额外文档。

设置 JWKs 缓存

在您的 AppServiceProviderregister 方法中添加

// app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Cache;
// ...
    public function register()
    {
        // ...
        $this->app->bind(
            '\Auth0\SDK\Helpers\Cache\CacheHandler',
            function() {
                static $cacheWrapper = null;
                if ($cacheWrapper === null) {
                $cache = Cache::store();
                $cacheWrapper = new LaravelCacheWrapper($cache);
            }
            return $cacheWrapper;
        });
    }

您可以通过创建一个实现 Auth0\SDK\Helpers\Cache\CacheHandler 接口的新类来自定义自己的缓存策略,或者只需通过选择存储库 Cache::store('your_store_name') 来使用您想要的缓存策略;

在您的数据库中存储用户

您可以通过创建自己的 UserRepository 来自定义您的应用程序中用户处理的方式。此类应实现 Auth0\Login\Contract\Auth0UserRepository 接口。请参阅 Laravel Quickstart 的自定义用户处理部分 了解最新示例。

使用 auth 守卫

要保护由 Auth0 生成的访问令牌的 API,提供了一个 auth0 API 守卫(Laravel 守卫文档)。要使用此守卫,请将其添加到 config/auth.php 并指定驱动程序为 auth0

'guards' => [
    ...
    'auth0' => [
        'driver' => 'auth0',
        'provider' => 'auth0',
    ],
],

'providers' => [
    ...
    'auth0' => [
        'driver' => 'auth0',
    ],
],

添加后,请将守卫添加到任何 API 路由的中间件中,并在请求期间检查身份验证

// get user
auth('auth0')->user();
// check if logged in
auth('auth0')->check();
// protect routes via middleware use
Route::group(['middleware' => 'auth:auth0'], function () {});

安装

使用 Composer 将此插件安装到新项目或现有项目中

$ composer require auth0/login:"~5.0"

有关安装的额外步骤,请参阅 quickstart

贡献

我们感谢您对这个存储库的反馈和贡献!在您开始之前,请参阅以下内容

支持 + 反馈

提供获取支持的信息。考虑添加

  • 使用 社区 来获取使用、问题、特定案例的帮助
  • 使用 问题 获取代码级别的支持

什么是 Auth0?

Auth0 帮助您轻松地

  • 实现与多个身份提供者(包括社交(例如,Google、Facebook、Microsoft、LinkedIn、GitHub、Twitter 等)或企业(例如,Windows Azure AD、Google Apps、Active Directory、ADFS、SAML 等))的认证
  • 使用用户名/密码数据库、无密码或多因素认证登录用户
  • 将多个用户帐户链接在一起
  • 生成已签名的 JSON Web 令牌以授权您的 API 调用并安全地流式传输用户身份
  • 访问详细说明用户何时、何地登录的用户人口统计和数据分析
  • 使用可定制的JavaScript规则,从其他数据源丰富用户档案

为何选择Auth0?

许可证

Auth0 Laravel登录插件采用MIT许可证 - 许可证