cegrent / auth0-laravel
Laravel 插件,帮助使用 auth0 服务进行认证
Requires
- php: ^7.1
- auth0/auth0-php: ^7.2.0
- illuminate/contracts: 5.* | ^6.0 | ^7.0 | ^8.0
- illuminate/support: 5.* | ^6.0 | ^7.0 | ^8.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.5.0
- orchestra/testbench: ^3.8|^4.0|^5.0
- phpcompatibility/php-compatibility: ^8.1
- phpunit/phpunit: ^7|^8|^9
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2024-09-13 02:29:12 UTC
README
此插件帮助您通过几个简单的步骤将您的 Laravel WebApp 集成到 Auth0,以实现单点登录。
- 主分支针对 Laravel 6 兼容性。
- 3.x 分支(不再维护)针对 Laravel 5.2 兼容性。
- 2.x 分支(不再维护)针对 Laravel 5.0 和 5.1 兼容性。
- 如果您使用的是较旧版本(Laravel 4.x),请使用版本 1.0.*(不再维护)
文档
请参阅 Laravel webapp quickstart 了解如何在现有项目中安装此插件或下载预配置的示例项目。以下为特定场景的额外文档。
设置 JWKs 缓存
在您的 AppServiceProvider
的 register
方法中添加
// 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 Laravel登录插件采用MIT许可证 - 许可证