承接 ilbronza/temporarylinks 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ilbronza/temporarylinks

Composer 安装命令:

composer require ilbronza/temporarylinks

包简介

controlled temporary links for external operators

README 文档

README

Link temporanei controllati per operatori esterni: URL pubblici https://dominio.it/t/{token} con scadenza, revoca manuale, limite visite, password/PIN opzionale, log accessi e protezione della pagina di destinazione.

Installazione nel progetto host

Aggiungere il path repository (se non già coperto dal wildcard) e la dependency:

"repositories": [
    { "type": "path", "url": "../../../pacchetti/TemporaryLinks" }
],
"require": {
    "ilbronza/temporarylinks": "*"
}

Poi:

composer update ilbronza/temporarylinks
php artisan migrate

Config pubblicabile con php artisan vendor:publish --tag=temporarylinks.config.

Creazione programmatica (modo preferito)

use IlBronza\TemporaryLinks\Facades\TemporaryLinks;

$result = TemporaryLinks::create()
    ->name('Compilazione rapportino')
    ->route('operators.timesheet.edit', ['operator' => $operator->getKey()])
    ->for($operator)                 // subject morph, opzionale
    ->expiresInMinutes(1440)         // default da config
    ->maxVisits(3)                   // opzionale
    ->password('1234')               // opzionale
    ->consumeOnFirstSuccess()        // opzionale, link monouso
    ->save();

$result->getPublicUrl(); // UNICO momento in cui l'URL col token in chiaro è disponibile
$result->link;           // il model TemporaryLink

Il token non viene mai salvato in chiaro: in tabella c'è solo sha256. Se l'URL va perso, usare l'azione admin "Genera nuovo URL" o $link->regenerateToken().

Proteggere la destinazione (obbligatorio)

Il redirect da solo non protegge la pagina di destinazione. Applicare il middleware alle route raggiunte dai link:

Route::get('timesheet/{operator}/edit', ...)
    ->middleware('temporarylink.verified')
    ->name('operators.timesheet.edit');

Il middleware verifica che la sessione arrivi da un link temporaneo valido (flag messo al redirect), ricontrolla revoca/scadenza e rende disponibile il link corrente in $request->attributes->get('temporaryLink') (da cui leggere subject).

Flusso pubblico

GET /t/{token} → verifica token (hash) → gate (revocato / consumato / non iniziato / scaduto / limite visite / destinazione valida) → eventuale challenge password → eventuale pagina interstiziale "Prosegui" (solo per link monouso o con max_visits, per evitare che gli email scanner brucino il link) → increment visite atomico → log accesso → grant sessione → redirect.

Throttle attivo sia sul GET pubblico sia sul POST password (configurabile).

Admin CRUD

Route sotto temporary-links-management con middleware da config('temporarylinks.middleware.admin'). Azioni extra oltre al resource: revoke, reactivate, extend, regenerateToken, duplicate, preview (apre la destinazione senza contare la visita). Dopo creazione/rigenerazione l'URL in chiaro viene flashato in sessione (temporarylinks.plainUrl e message) e mostrato una sola volta.

Comandi

  • php artisan temporarylinks:cleanup — elimina access log più vecchi di cleanup.access_log_retention_days
  • php artisan temporarylinks:report — conteggi per stato

Eventi

TemporaryLinkCreated, TemporaryLinkOpened, TemporaryLinkBlocked, TemporaryLinkRevoked, TemporaryLinkConsumed.

Override

Come gli altri package IlBronza, tutto passa da config/temporarylinks.php: classi model, tabelle, controllers (crud, actions, redirect), parametersFiles, middleware, throttle, allow_absolute_urls + allowed_hosts per destinazioni URL assolute (default disabilitate, anti open-redirect).

Stati (solo calcolati)

draft, scheduled, active, expired, revoked, consumed, limit_reached — accessor $link->status / $link->translated_status, scopes active(), scheduled(), expired(), revoked(), consumed(), neverOpened().

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固