upbond/laravel-auth

Laravel插件,帮助使用upbond身份验证服务进行认证

v2.0.6 2022-07-21 03:56 UTC

README

本软件包受Auth0的启发

文档

请参阅Laravel webapp快速入门指南,了解如何在现有项目中安装此软件包或下载预配置的示例项目。以下是对特定场景的附加文档。

设置

$this->app->bind(
    \Upbond\Auth\Login\Contract\AuthUserRepository::class,
    \Upbond\Auth\Login\Repository\AuthUserRepository::class
);

设置JWKs缓存

在您的AppServiceProviderregister方法中添加

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

为Lumen设置

$app->register(Upbond\Auth\Login\LoginServiceProvider::class);

更新.env文件,将环境默认值设置为api.upbond.io

UPBOND_API_URI=api.dev.upbond.io

您可以通过创建一个新的类来实现自己的缓存策略,该类实现了Auth\SDK\Helpers\Cache\CacheHandler合约,或者只需通过选择该存储来使用您想要的缓存策略Cache::store('your_store_name')

在数据库中存储用户

您可以通过创建自己的UserRepository来自定义应用程序中用户的处理方式。此类应实现Auth\Login\Contract\AuthUserRepository合约。请参阅Laravel快速入门中的自定义用户处理部分以获取最新示例。

使用认证保护器

为了保护由Auth生成的访问令牌的API,提供了一个upbond API保护器(Laravel关于保护器的文档)。要使用此保护器,请将其添加到config/auth.php中的驱动程序upbond



'providers' => [
    
    'users' => [
        'driver' => 'upbond',
    ],
],

添加后,将保护器添加到任何API路由的中介中,并在请求期间检查认证

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

Route::get( '/auth/callback', '\Upbond\Auth\Login\AuthController@callback' )->name( 'auth-callback' );

env文件

UPBOND_API_URI
UPBOND_AUTH_DOMAIN
UPBOND_AUTH_CLIENT_ID
UPBOND_AUTH_CLIENT_SECRET

安装

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

$ composer require upbond/laravel-auth

有关安装的附加步骤,请参阅快速入门

贡献

我们感谢您对本次仓库的反馈和贡献!在您开始之前,请参阅以下内容

支持 + 反馈

包含有关如何获取支持的信息。考虑添加

  • 使用社区进行使用、提问和特定案例
  • 使用问题进行代码级别支持

什么是Auth?

Auth帮助您轻松

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

为什么使用Auth?

许可证

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