vectorwyse / idle-timeout-alert
一个用于提醒即将过期的空闲会话的 Laravel 扩展包。
This package is auto-updated.
Last update: 2024-09-09 08:55:25 UTC
README
一个用于提醒即将过期的空闲会话的 Laravel 扩展包。
虽然 SESSION_LIFETIME 很好,但用户如何知道会话即将因为不活跃而过期,特别是如果这个值很低呢?此外,用户可能正在积极与网站互动(通过点击或填写表单),但从未向后端发送请求。Laravel 可能会在用户不知情的情况下结束会话。
当会话即将过期时,显示一个对话框,让用户可以选择不注销。
工作原理
这段代码实际上并没有注销用户。它仍然依赖于 Laravel 的会话过期机制。它所做的只是定期检查会话何时会过期,并在几乎要过期时提醒用户。
演示库位于:vectorwyse/idle-timeout-alert-demo
安装
Laravel 扩展包和 NPM 依赖
composer require vectorwyse/idle-timeout-alert npm install --save idle-vue
用法
禁用 "记住我" 功能
步骤 1:将以下行添加到 app/User.php
protected $rememberTokenName = false;
步骤 2:从您的登录表单中移除 "记住我" 复选框
发布和编译资产
步骤 1:将资产发布到供应商文件夹
php artisan vendor:publish --provider="Vectorwyse\IdleTimeoutAlert\IdleTimeoutAlertServiceProvider" --tag="vue-components"
步骤 2:将以下内容添加到应用程序的 resources/js/app.js
。请将其放置在组件注册部分
require('./../assets/vendor/vectorwyse/idle-timeout-alert/js/app');
步骤 3:编译
npm run dev
添加组件
最后,将组件添加到您希望显示对话框的任何页面上。一个好的地方是 layouts/app.blade.php
。
<timeout-dialog></timeout-dialog>
默认情况下,只有在用户在会话即将过期时处于空闲状态时,对话框才会出现。只要用户有活动,就会在后台发送一个 ping 以保持会话活跃。
如果您想忽略用户活动并使对话框无论什么情况都出现,请使用以下内容
<timeout-dialog v-bind:ignore-activity="true"></timeout-dialog>
如果您想允许用户在特定页面上永远停留而不超时,请使用以下内容
<timeout-dialog v-bind:keep-alive="true"></timeout-dialog>
只要用户在页面上,就会在后台发送一个 ping 以保持会话活跃,并且永远不会出现对话框。
自定义
请随意修改 resources/assets/vendor/vectorwyse/idle-timeout-alert/js/components/TimeoutDialog.vue
中的对话框。别忘了之后重新编译资产!
支持我们
Vectorwyse 是一家提供咨询和网页开发服务的数字机构。我们热爱用 Laravel 和 Vue.js 来构建事物,所以当我们有机会回馈社区时,我们非常兴奋!
如果您觉得这个包很有用,或者您希望我们为您构建一些东西,欢迎随时 联系我们!