tim-online / laravel-auth-pubtkt
Laravel 登录服务器,用于 mod_auth_pubtkt
0.0.1
2017-05-08 07:43 UTC
Requires
- php: >=5.6.4
- ext-mbstring: *
- ext-openssl: *
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 身份验证守卫
- 添加超时、刷新和未授权通知