tim-online/laravel-auth-pubtkt

Laravel 登录服务器,用于 mod_auth_pubtkt

0.0.1 2017-05-08 07:43 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:10:11 UTC


README

本模块实现了 Apache mod_auth_pubtkt 模块的登录服务器。

它通过登录时设置额外的 auth_pubtkt Cookie 来工作。

安装

此软件包可以通过 Composer 安装。

composer require tim-online/laravel-auth-pubtkt

您必须安装此服务提供者。

// config/app.php
'providers' => [
    ...
    Timonline\AuthPubtkt\AuthPubtktServiceProvider::class
    ...
];

您可以使用以下命令发布此软件包的配置文件

php artisan vendor:publish --provider="Timonline\AuthPubtkt\AuthPubtktServiceProvider"

此模块与默认 Laravel 登录表单兼容,但为了使重定向到受保护的应用程序工作正常,需要进行一些自定义设置。

允许 auth_pubtkt Cookie 不加密。将 cookienaam 添加到 EncryptCookies 的异常列表中

/**
 * The names of the cookies that should not be encrypted.
 *
 * @var array
 */
protected $except = [
    'auth_pubtkt',
];

back 参数作为隐藏输入添加到您的登录表单中

<input type="hidden" name="back" value="{{ app('request')->input('back') }}" />

最后,登录后重定向到回退 URL。编辑您的 Auth\LoginController

protected function redirectTo(Request $request)
{
    return $request->input('back', '/home');
}

要使重定向在 Spark 中工作,您可以编辑 SparkServiceProvider 并在 booted 方法中添加此调用

Spark::afterLoginRedirectTo(function() {
    $request = app('request');
    return $request->input('back', '/home');
});

为了保护受保护的应用程序,您可以使用类似以下方法

<Location />
    AuthType mod_auth_pubtkt
    TKTAuthLoginURL https://myapp.tld/login
    TKTAuthTimeoutURL https://myapp.tld/login?timeout=1
    TKTAuthRefreshURL https://myapp.tld/login?refresh=1
    TKTAuthUnauthURL https://myapp.tld/login?unauth=1
    TKTAuthRequireSSL on
    require valid-user
</Location>

待办事项

  • 使 ?back= 在视图和控制器中无需手动自定义即可工作
  • 使 EncryptCookies 中间件自动跳过 auth_pubtkt Cookie
  • 为 mod_auth_pubtkt 创建自定义 Laravel 身份验证守卫
  • 添加超时、刷新和未授权通知