You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pixelfed/config/sanctum.php

88 lines
3.0 KiB
PHTML

<?php
use Illuminate\Cookie\Middleware\EncryptCookies;
Upgrade to Laravel 13 - laravel/framework ^12.0 -> ^13.0 - spatie/laravel-backup ^9.2.9 -> ^10.0 (forced: 9.x pins illuminate/notifications ^12.40, incompatible with L13) - Drop psalm/plugin-laravel + vimeo/psalm (dev-only static analysis): the only version chain compatible with L13's testbench-core needs vimeo/psalm ^7.0.0-beta, which requires narrowing the project's declared PHP floor (composer platform.php is pinned to 8.3.0 to keep composer.lock installable on the oldest supported PHP patch; the psalm 7 betas require specific 8.3.16+/8.4.3+/8.5.0+ floors). Its CI workflow (.github/workflows/php-psalm.yml) was already disabled (`on: []`, "too many errors"). Larastan/PHPStan remains as the project's static analysis tool, unaffected. - Rename VerifyCsrfToken/ValidateCsrfToken -> PreventRequestForgery in bootstrap/app.php and config/sanctum.php (the L13 rename; old classes remain as deprecated aliases but new code should reference the new name), and validateCsrfTokens() -> preventRequestForgery() in the middleware config. Everything else (cache serializable_classes, cache/session/redis key prefixes, upsert() uniqueBy, JobAttempted/QueueBusy event properties, pagination view names, Manager::extend bindings, model-boot nested instantiation) was checked against the app's actual code and found to be either already handled, already using the new convention, or not applicable to any pattern in this codebase. All 715 tests pass (verified against a clean baseline with Redis available locally via Docker); Pint and Larastan (the project's configured `composer analyse` scope) are both clean.
2 weeks ago
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;
use Laravel\Sanctum\Http\Middleware\AuthenticateSession;
use Laravel\Sanctum\Sanctum;
return [
/*
|--------------------------------------------------------------------------
| Stateful Domains
|--------------------------------------------------------------------------
|
| Requests from the following domains / hosts will receive stateful API
| authentication cookies. Typically, these should include your local
| and production domains which access your API via a frontend SPA.
|
*/
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
'%s%s',
'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
Sanctum::currentApplicationUrlWithPort(),
// Sanctum::currentRequestHost(),
))),
/*
|--------------------------------------------------------------------------
| Sanctum Guards
|--------------------------------------------------------------------------
|
| This array contains the authentication guards that will be checked when
| Sanctum is trying to authenticate a request. If none of these guards
| are able to authenticate the request, Sanctum will use the bearer
| token that's present on an incoming request for authentication.
|
*/
'guard' => ['web'],
/*
|--------------------------------------------------------------------------
| Expiration Minutes
|--------------------------------------------------------------------------
|
| This value controls the number of minutes until an issued token will be
| considered expired. This will override any values set in the token's
| "expires_at" attribute, but first-party sessions are not affected.
|
*/
'expiration' => null,
/*
|--------------------------------------------------------------------------
| Token Prefix
|--------------------------------------------------------------------------
|
| Sanctum can prefix new tokens in order to take advantage of numerous
| security scanning initiatives maintained by open source platforms
| that notify developers if they commit tokens into repositories.
|
| See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning
|
*/
'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''),
/*
|--------------------------------------------------------------------------
| Sanctum Middleware
|--------------------------------------------------------------------------
|
| When authenticating your first-party SPA with Sanctum you may need to
| customize some of the middleware Sanctum uses while processing the
| request. You may change the middleware listed below as required.
|
*/
'middleware' => [
'authenticate_session' => AuthenticateSession::class,
'encrypt_cookies' => EncryptCookies::class,
Upgrade to Laravel 13 - laravel/framework ^12.0 -> ^13.0 - spatie/laravel-backup ^9.2.9 -> ^10.0 (forced: 9.x pins illuminate/notifications ^12.40, incompatible with L13) - Drop psalm/plugin-laravel + vimeo/psalm (dev-only static analysis): the only version chain compatible with L13's testbench-core needs vimeo/psalm ^7.0.0-beta, which requires narrowing the project's declared PHP floor (composer platform.php is pinned to 8.3.0 to keep composer.lock installable on the oldest supported PHP patch; the psalm 7 betas require specific 8.3.16+/8.4.3+/8.5.0+ floors). Its CI workflow (.github/workflows/php-psalm.yml) was already disabled (`on: []`, "too many errors"). Larastan/PHPStan remains as the project's static analysis tool, unaffected. - Rename VerifyCsrfToken/ValidateCsrfToken -> PreventRequestForgery in bootstrap/app.php and config/sanctum.php (the L13 rename; old classes remain as deprecated aliases but new code should reference the new name), and validateCsrfTokens() -> preventRequestForgery() in the middleware config. Everything else (cache serializable_classes, cache/session/redis key prefixes, upsert() uniqueBy, JobAttempted/QueueBusy event properties, pagination view names, Manager::extend bindings, model-boot nested instantiation) was checked against the app's actual code and found to be either already handled, already using the new convention, or not applicable to any pattern in this codebase. All 715 tests pass (verified against a clean baseline with Redis available locally via Docker); Pint and Larastan (the project's configured `composer analyse` scope) are both clean.
2 weeks ago
'validate_csrf_token' => PreventRequestForgery::class,
],
];