vectorwyse/idle-timeout-alert

一个用于提醒即将过期的空闲会话的 Laravel 扩展包。

v1.0 2020-07-07 00:45 UTC

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 来构建事物,所以当我们有机会回馈社区时,我们非常兴奋!

如果您觉得这个包很有用,或者您希望我们为您构建一些东西,欢迎随时 联系我们!