可以通过以下地址学习Composer:学习地址
想象一下,你正在开发一个 laravel 应用,突然接到一个需求:
面对这些需求,传统的解决方案往往让人头疼:
这些问题不仅增加了开发难度,也给应用带来了潜在的安全漏洞和糟糕的用户体验。
cesargb/laravel-magiclink
正当你为这些繁琐且不安全的方案头疼时,Composer 和
cesargb/laravel-magiclink
1. 安装与准备
首先,使用 Composer 轻松安装这个包:
<pre class="brush:php;toolbar:false;">composer require cesargb/laravel-magiclink
接着,发布并运行数据库迁移,以创建存储魔法链接信息的
magic_links
<pre class="brush:php;toolbar:false;">php artisan vendor:publish --provider="MagicLink\MagicLinkServiceProvider" --tag="migrations" php artisan migrate
现在,你的 Laravel 应用已经准备好施展“魔法”了!
2. 核心功能:创建魔法链接
MagicLink
MagicLink::create()
场景一:无密码登录
这是最常见的应用场景之一。用户点击邮件中的链接即可直接登录。
<pre class="brush:php;toolbar:false;">use MagicLink\Actions\LoginAction;
use MagicLink\MagicLink;
use App\Models\User; // 假设你的用户模型是 App\Models\User
// 获取你希望登录的用户实例
$user = User::find(1);
// 创建一个登录动作,并指定登录成功后的重定向路径
$action = (new LoginAction($user))->response(redirect('/dashboard'));
// 生成魔法链接
$urlToAutoLogin = MagicLink::create($action)->url;
// 现在,你可以将 $urlToAutoLogin 发送给用户了
// 例如:邮件通知、短信等
echo "请点击此链接登录: " . $urlToAutoLogin;当用户点击这个链接时,系统会自动将
$user
/dashboard
场景二:安全下载私有文件
假设你有一个敏感文件,如客户的专属报告
private_document.pdf
storage/app
<pre class="brush:php;toolbar:false;">use MagicLink\Actions\DownloadFileAction;
use MagicLink\MagicLink;
// 创建一个下载文件动作,指定文件路径
$action = new DownloadFileAction('private_document.pdf');
// 你还可以指定下载时的文件名,或者从其他磁盘下载
// $action = (new DownloadFileAction('private_document.pdf', 'your_report.pdf'))->disk('ftp');
// 生成魔法链接
$urlToDownload = MagicLink::create($action)->url;
echo "请点击此链接下载报告: " . $urlToDownload;这个链接将允许用户直接下载指定文件,而无需暴露文件的实际存储路径。
更多开箱即用的动作:
cesargb/laravel-magiclink
ViewAction
ResponseAction
ControllerAction
MagicLink\Actions\ActionAbstract
3. 进阶功能:掌控链接的生命周期与安全性
MagicLink
null
<pre class="brush:php;toolbar:false;">// 链接有效期60分钟 $magiclink = MagicLink::create($action, 60)->url;
1
<pre class="brush:php;toolbar:false;">// 链接只能访问一次 $magiclink = MagicLink::create($action, null, 1)->url;
<pre class="brush:php;toolbar:false;">$magiclink = MagicLink::create($action);
$magiclink->protectWithAccessCode('mySecretCode');
$url = $magiclink->url;.env
MAGICLINK_RATE_LIMIT=100
MagicLinkWasCreated
MagicLinkWasVisited
MagicLinkWasDeleted
使用
cesargb/laravel-magiclink
在实际项目中,
cesargb/laravel-magiclink
cesargb/laravel-magiclink
以上就是如何使用cesargb/laravel-magiclink解决Laravel应用中的安全临时访问问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号