arietimmerman/laravel-authchain

Laravel 验证链创建包

v0.5.3 2022-04-14 19:59 UTC

This package is auto-updated.

Last update: 2024-09-15 01:04:48 UTC


README

这是一个通用的验证链,可用于所有验证方法和联合协议。

该模块由 Idaas.nl 使用。

此模块仍在开发中

安装

确保您排除 authchain 请求的 CSRF 验证。

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        '/saml/v2/*',
        '/authchain/*'
    ];
}

在您的 routes/web.php 文件中启用路由。

\ArieTimmerman\Laravel\AuthChain\Providers\RouteProvider::routes();

可以使用以下方式检索完整的用户详情

ArieTimmerman\Laravel\AuthChain\Object\Eloquent\Subject::find(id);

扩展主题。

<?php

namespace App;

use ArieTimmerman\Passport\HasApiTokens;

class Subject extends \ArieTimmerman\Laravel\AuthChain\Object\Eloquent\Subject {

    use HasApiTokens;

}

使用以下方式注册新的模块类型。

AuthChain::addType('\ArieTimmerman\Laravel\AuthChain\Types\Password');

设计考虑因素

模块

模块属于某一类型。

主题

主题是一个已验证的资源所有者。每次有人登录时,都会创建一个新的主题。主题可以通过链接与用户关联。链接包含用户标识符和静态主题标识符。

这样做的目的是允许不同的主题同时存在。例如,来自同一 Facebook 用户的相同主题

已验证的主题标识符基于链中的第一个主题

身份有一个或多个主题!

在链中,我们将有一个活着的主题。每个模块都可能发出一个活着的主题。

验证链完成后,主题将被保存。保存的主题是经过验证的。

验证响应

可以从状态生成 AuthResponse。状态包含所有状态详情。AuthResponse 包含有关如何满足状态要求的信息。

工作原理。

如果没有指定验证级别,AuthChain 将强制用户完成他面临的全部模块。

例如,即使应用程序不需要二次验证,如果用户已配置,用户也必须完成它。

待办事项

待办事项:删除对 \App\User 和可能的其它可选 Laravel 类的依赖