此包可以用简单的cookie来保护Laravel中的任何路由。

v1.02 2019-06-18 16:04 UTC

This package is auto-updated.

Last update: 2024-09-19 03:34:21 UTC


README

COokie GUard for Laravel

Latest Version on Packagist Total Downloads

此包可以用简单的cookie来保护Laravel中的任何路由。如果没有在请求中定义的cookie值,它将阻止任何人(或任何东西)访问特定的路由。

安装

您可以通过Composer安装此包

composer require milhouse1337/cogul

配置

要生成随机令牌(字符串),您可以使用 openssl,如下所示

openssl rand -hex 32

将令牌添加到您的 .env 文件中

COGUL_TOKEN=random_token_here

您可以使用(可选的)来发布配置

php artisan vendor:publish --provider="Milhouse1337\Cogul\CogulServiceProvider"

以下是一个示例 config/cogul.php 文件

return [
    'token'      => env('COGUL_TOKEN', ''),
    'url'        => env('COGUL_URL', '/auth/token/{token}'),
    'redirect'   => env('COGUL_REDIRECT', '/'),
    'cookie'     => env('COGUL_COOKIE', 'cogul'),
    'expiration' => env('COGUL_EXPIRATION', 2628000), // 5 years.
    'middleware' => env('COGUL_MIDDLEWARE', 'web'),
    'whitelist'  => [],
];

用法

您必须使用 auth.cogul 中间件定义您想要保护的路由,如下所示

Route::get('example', 'Controller@example')->middleware('auth.cogul');

现在如果您 GET/example,您将收到Laravel的 403 响应。

为了得到预期的响应,您需要在浏览器中访问以下链接来设置 cogul cookie

/auth/token/random_token_here

cookie应该存储在您的浏览器中,并且您将被重定向到您配置的URL。

现在您将能够正常访问 /example,直到cookie过期或被删除。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件