Laravel 身份验证会话超时

     2023-03-14     37

关键词:

【中文标题】Laravel 身份验证会话超时【英文标题】:Laravel Auth session timeout 【发布时间】:2019-07-26 06:45:26 【问题描述】:

我在这方面看到了几个问题,到目前为止,所有回复似乎都集中在检测下一个用户操作的过期时间。 不管能够做到这一点,我想要的是让服务器端代码检测到过期,然后强制刷新用户屏幕。从概念上讲,这个过程是这样的:

    在服务器端检测到过期 (可选)向用户发送一条消息,询问他们是否希望继续。如果没有响应,请强制注销过程并相应地通知用户。如果用户确认他们想要保持会话,然后模拟一些活动来重置过期时间。如果没有消息发送,只需强制一个新屏幕。

在我的例子中,我使用 Auth 登录并授予用户管理权限。这包括访问维护表格/按钮。

基本上,我不想要的是一个屏幕,因为它已过期,表明用户 a) 仍处于登录状态,并且 b) 显示他们当时正在做的事情的详细信息。如果用户拥有特殊权限,他们不应在到期后保持可见。例如,管理员正在更改用户的个人详细信息并被叫走。鉴于他/她应该终止进程并退出,如果他们未能执行此操作,则不应将详细信息留在屏幕上以供其他人稍后查看。

理想的情况是某种形式的事件监听器,但即便如此我也不确定如何在不运行 JS 计时器循环的情况下强制屏幕更改。

我假设我不是唯一一个有这种要求的人,所以我的问题是......

你如何在 Laravel 5 的约束下处理这种类型的需求?

【问题讨论】:

【参考方案1】:

会话的默认值在 config/session.php 下定义。您可以使用配置辅助函数config('session.lifetime') 获取该值。

在您的情况下,您需要检查客户端的会话时间(javascript)。

这是一个在会话到期之前刷新页面的代码示例。此代码用于刀片模板。

@if (Auth::check()) 
    <script>
    var timeout = (config('session.lifetime') * 60000) -10 ;
    setTimeout(function()
        window.location.reload(1);
    ,  timeout);



    </script>
@endif

您可以调整代码以通过对话框提示确认用户是否要延长其会话时间并执行 ajax 来获取或刷新会话时间。

【讨论】:

Laravel - 使用会话令牌进行身份验证

】Laravel-使用会话令牌进行身份验证【英文标题】:Laravel-authenticatingwithsessiontoken【发布时间】:2014-06-0811:56:00【问题描述】:登录时,我以JSON形式返回用户对象+会话令牌,以便可以对连接到我的应用程序的移动设备进行身份验... 查看详情

ASP.NET 窗体身份验证超时和会话超时

】ASP.NET窗体身份验证超时和会话超时【英文标题】:ASP.NETFormsAuthenticationTimeoutandSessionTimeout【发布时间】:2015-11-0522:38:24【问题描述】:我在asp.net中使用表单身份验证。我已将超时设置为1分钟。一旦我登录,如果通过身份验证... 查看详情

asp.net cookie、身份验证和会话超时

】asp.netcookie、身份验证和会话超时【英文标题】:asp.netcookies,authenticationandsessiontimeouts【发布时间】:2010-10-0201:29:09【问题描述】:我有一个使用表单身份验证的asp.net网站。我在会话中保留了一些内容,例如用户名、用户ID、电... 查看详情

与 PHP 共享 Laravel 身份验证/会话

】与PHP共享Laravel身份验证/会话【英文标题】:ShareLaravelauthentication/sessionwithPHP【发布时间】:2014-01-2422:41:59【问题描述】:我正在尝试将Laravel身份验证与许多简单的HTML/Javascript应用程序一起使用。我认为理想的工作方式是这样... 查看详情

身份验证登录时的 Laravel 超时

】身份验证登录时的Laravel超时【英文标题】:Laraveltimeoutonauthlogin【发布时间】:2017-02-1311:42:29【问题描述】:Laravel5.3-我的目标是通过ajax将登录表单发送到登录控制器(AuthenticatesUserstrait),并获得响应(json可以),所以我可... 查看详情

Laravel 7 手动身份验证会话问题

】Laravel7手动身份验证会话问题【英文标题】:Laravel7manualauthenticationsessionissue【发布时间】:2020-09-0117:42:49【问题描述】:TL;DR:在成功登录并重定向到/home后,我被Controller的中间件($this-&gt;middleware(\'auth\');)踢回/login。我... 查看详情

Laravel 4.1 身份验证会话数据不会跨请求持久化

】Laravel4.1身份验证会话数据不会跨请求持久化【英文标题】:Laravel4.1authenticationsessiondatanotpersistingacrossrequests【发布时间】:2014-06-2308:45:48【问题描述】:我有一个使用eloquent身份验证驱动程序和数据库会话驱动程序的Laravel4.1应... 查看详情

MVC 身份验证超时/会话 cookie 删除后的 Ajax 请求

】MVC身份验证超时/会话cookie删除后的Ajax请求【英文标题】:AjaxrequestafterMVCauthenticationtimeout/sessioncookiedeleted【发布时间】:2015-11-2223:04:42【问题描述】:当用户超时或会话cookiecookie被删除时使用MVC5身份验证,用户将被重定向到... 查看详情

在 laravel 5.2 中使用默认身份验证路由对用户进行身份验证后设置会话数据

】在laravel5.2中使用默认身份验证路由对用户进行身份验证后设置会话数据【英文标题】:Setsessiondataafterauthenticateuserusingdefaultauthrouteinlaravel5.2【发布时间】:2017-05-1016:19:44【问题描述】:我正在使用laravel5.2开发一个项目。我通... 查看详情

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?

】如何检查用户是不是通过Laravel上的cookie会话进行身份验证?【英文标题】:HowtocheckifuserisauthenticatedbycookiesessiononLaravel?如何检查用户是否通过Laravel上的cookie会话进行身份验证?【发布时间】:2015-10-1114:34:29【问题描述】:嗯... 查看详情

Laravel 5:使用 Laravel 会话数据的 Socket.io 客户端身份验证

】Laravel5:使用Laravel会话数据的Socket.io客户端身份验证【英文标题】:Laravel5:Socket.ioclientauthenticationusingLaravelsessiondata【发布时间】:2015-09-2221:00:56【问题描述】:我想根据Laravel创建的客户端会话数据对socket.io客户端进行身份验... 查看详情

Laravel 4 中的多个身份验证会话

】Laravel4中的多个身份验证会话【英文标题】:MultipleAuthsessionsinLaravel4【发布时间】:2013-09-2912:47:13【问题描述】:我目前正在处理的项目分为管理控制台和普通前端。前端和后端都在同一个Laravel实例中。在前端,我正在尝试创... 查看详情

通过多个 Laravel 5 安装跨子域共享身份验证会话

】通过多个Laravel5安装跨子域共享身份验证会话【英文标题】:ShareauthsessionsacrosssubdomainswithmultipleLaravel5installations【发布时间】:2015-12-1708:54:30【问题描述】:我有两个子域,每个子域都安装了自己的Laravel5.1并共享同一个数据库... 查看详情

laravel 5.2 在自定义身份验证中将登录会话数据插入数据库

】laravel5.2在自定义身份验证中将登录会话数据插入数据库【英文标题】:laravel5.2Insertloginsessiondatatodatabaseoncustomauth【发布时间】:2018-06-1620:15:01【问题描述】:我在laravel5.2中有一个自定义身份验证登录,我的自定义登录配置是\... 查看详情

来自 laravel 会话登录的经过身份验证的 api 调用。可能吗?

】来自laravel会话登录的经过身份验证的api调用。可能吗?【英文标题】:Authenticatedapicallsfromlaravelsessionlogin.Isitpossible?【发布时间】:2019-10-2500:16:13【问题描述】:所以我只是在寻找我正在寻找的东西时遇到了问题。所以我习惯... 查看详情

如何在不重置 tomcat 会话超时的情况下执行经过身份验证的 AJAX 请求?

】如何在不重置tomcat会话超时的情况下执行经过身份验证的AJAX请求?【英文标题】:HowdoIexecuteanauthenticatedAJAXrequestwithoutresettingthetomcat\'ssessiontimeout?【发布时间】:2011-06-1713:59:45【问题描述】:我有一个现有的GrailsWeb应用程序正... 查看详情

如何在 Vue 2 和 Laravel 5.5 中验证会话和身份验证令牌

】如何在Vue2和Laravel5.5中验证会话和身份验证令牌【英文标题】:HowtoverifysessionandauthtokeninVue2andLaravel5.5【发布时间】:2018-03-2509:43:26【问题描述】:我有一个像客户端文件夹和服务器文件夹这样的项目结构。在client文件夹中,我... 查看详情

Laravel 5.3记住我身份验证问题

】Laravel5.3记住我身份验证问题【英文标题】:Laravel5.3RemembermeAuthissue【发布时间】:2017-03-1504:15:26【问题描述】:我已经在我的laravel5.3项目中实现了记住我的登录,但是我在运行时遇到了一些问题,当用户返回页面时,它会自... 查看详情