首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在后退按钮上显示"Page expired“- Laravel

在Laravel中,当用户点击浏览器的后退按钮时,有时会出现"Page expired"的提示。这是因为Laravel默认启用了CSRF保护(跨站请求伪造),当用户提交表单时,Laravel会生成一个CSRF令牌,并将其存储在会话中和表单中的隐藏字段中。当用户点击后退按钮返回到表单页面时,由于会话中的CSRF令牌已过期,Laravel会认为表单已过期,从而显示"Page expired"。

为了解决这个问题,可以采取以下几种方法:

  1. 使用无状态表单:在Laravel中,可以使用@csrf指令生成一个隐藏的CSRF令牌字段,并将其包含在表单中。这样,每次提交表单时,Laravel会验证CSRF令牌的有效性,从而避免"Page expired"的提示。
  2. 禁用CSRF保护:如果你确定你的应用程序不需要CSRF保护,可以在相应的路由或控制器中禁用CSRF保护。可以通过在路由中使用withoutMiddleware方法或在控制器中使用middleware属性来实现。
  3. 增加CSRF令牌的有效期:默认情况下,Laravel的CSRF令牌有效期为2小时。你可以通过修改config/session.php配置文件中的lifetime选项来增加CSRF令牌的有效期。
  4. 使用AJAX提交表单:如果你的表单是通过AJAX提交的,可以在每次请求中包含CSRF令牌。可以通过在JavaScript中获取CSRF令牌的值,并将其作为请求头或请求参数发送给服务器来实现。

总结起来,解决"Page expired"的方法包括使用无状态表单、禁用CSRF保护、增加CSRF令牌的有效期和使用AJAX提交表单。具体选择哪种方法取决于你的应用程序的需求和安全性要求。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库(TencentDB)、腾讯云对象存储(COS)、腾讯云CDN(内容分发网络)。你可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多关于这些产品的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • laravel框架学习记录之表单操作详解

    分享给大家供大家参考,具体如下: 1、MVC数据流动 拿到一个laravel项目最基本的是弄清楚它的页面请求、数据流动是怎样进行的,比如当通过get请求index页面时,如何显示如下的学生信息列表: ?...-- index页面自定义内容-- @stop 自定义内容里通过@foreach将学生数据信息循环显示到列表 @foreach($students as $student) <tr.../js/app.js')}}" </script 3、laravel中实现分页 laravel中可以很便捷地实现分页数据显示,第一步是controller中分页取出数据库数据并传递给页面: return...后,controller中对其先进行验证,如果正确则存入数据库,否则返回到上一页面并抛出一个异常errors,页面中显示错误errors中的信息 //表单验证 $request- validate(.../web.php下注册了该方法后报错消失 Route::get('delete/{id}','StudentController@delete'); ③、The page has expired due

    12.6K30

    Laravel 7.x 使用 keyspace notification 监听不到 Key 过期事件

    这个 Laravel 中其实有更好的选择方式 队列,使用延时队列 ProcessPodcast::dispatch($podcast)->delay(now()->addMinutes(30)); 但是我还想到一种方案就是使用...@0__:expired Reading messages......_keyevent@0__:expired" 3) "__keyevent@0__:expired" 访问路由文件,设置 Redis Key,但是你会发现实际我们编写的控制台命令,Redis 5 秒过后并不会触发任何事件...下图是 Laravel 项目的结果,过一定事件还会出现连接错误: ? 这个问题纠结了挺久。最后解决方案如下: 解决方案 不使用 Laravel 自带的 Redis 门面,改为原生 Redis 。...我猜是 Laravel 的门面 Illuminate\Support\Facades\Redis ,这个订阅可能需要配合 发布一起使用。

    1.7K10

    通过 Laravel 创建一个 Vue 单页面应用(三)

    如果你是 Laravel 的新手,你可以查阅 数据库入门 的大量文档。...它实际是这样的: { params: { page: 1 } } 下面是我们的 beforeRouteEnter 守卫如何使用 getUsers 函数获取异步数据,然后组件上调用...我引入了三个计算属性(nextPage,prevPage和paginatonCount)来确定下一页和一页的页码,并 paginatonCount 显示了当前页码的可视计数和总页数。...下一个和上一个按钮使用计算出的属性来确定是否应禁用它们,而 goTo 方法使用这些计算出的属性将 page 查询字符串参数推入下一页或一页。...当下一页或一页第一页和最后一页的边界处为空时,将禁用这些按钮。 代码中可能有一些冗余,但是此组件说明 vue-router了进入路由之前用于获取数据的方法!

    5.2K10

    Laravel Sanctum API 授权

    存入数据库之前,API 令牌已使用 SHA-256 哈希加密过,但你可以使用 NewAccessToken 实例的 plainTextToken 属性访问令牌的纯文本值。...创建令牌后,你应该立即向用户显示此值: $token = $request->user()->createToken($request->token_name); return ['token' =>...有个好消息,sanctum 提供了一个 Artisan 命令,可以实现这个想法: php artisan sanctum:prune-expired 比如,您可以设置一个调度任务用于删除你数据库中所有过期超过...24 小时的 token 记录: $schedule->command('sanctum:prune-expired --hours=24')->daily(); SPA 认证 这块应该是混合开发模式...移动应用身份验证 测试 测试时,Sanctum::actingAs 方法可用于验证用户并指定为其令牌授予哪些能力: use App\Models\User; use Laravel\Sanctum\Sanctum

    3K30

    ​「免费开源」基于Vue和Quasar的crudapi前端SPA项目实战之布局菜单(三)

    UI界面 效果 [布局菜单首页] 首页 [布局菜单展开] 业务数据菜单展开 [布局菜单设置] 设置页面 说明 布局主页分为三个部分, 最上面为导航栏,主要包括刷新按钮后退按钮,用户信息等内容。...$store.state.config.isAllowBack; } } } MainLayout.vue中通过computed计算属性isAllowBack绑定q-btn,这样可以控制后退按钮是否显示...首页不需要后退,设置页面和关于页面就需要后退后退按钮主要目的是适应不同的浏览器,不依赖浏览器的后退功能,比如H5页面全屏或者嵌入到Cordova壳子里面的时候就非常有用了。...list: async function(page, rowsPerPage, search, query) { var res = await metadataTable.list(page, rowsPerPage..., search, query); return res.data; }, 其中业务数据是根据表单列表动态显示的,通过metadataTableService的list方法查询表单,然后动态渲染。

    78530

    Laravel5.8学习日常之分页

    传统分页 平常的代码撰写中,分页是一个比较头疼的一件事,总结一下,现在分页可以分为两种分页大类,分别是后端分页及前端分页。...后端分页分为页面有刷新请求及无刷新请求(Ajax请求),就是前台采用按钮事件或者Ajax请求的方式,告知后台进行分页,同时后台进行计算偏移量及当前页码,进行对应页码数据的请求,之后后台查询好数据进行向前台数据进行传递...默认情况下,HTTP 请求中的 page 查询参数值被当作当前页的页码。Lavarel 自动侦测该值,并自动将其插入到分页器生成的链接中。 在其它框架中,分页可能非常痛苦。...laravel文档介绍 Laravel分页只需要两个步骤: (1)控制器初始化方法增加paginate方法,向前台渲染数据即可; (2)前台将添加一个Laravel自带的语法{{ $data->links...(10); //加载页面 return view('admin.user.index')->with('data',$data)->with('count',$count); } 前台显示代码

    2.2K10

    实现流畅的页面切换?日本的前端教教你...

    LINE中可以直接看漫画了,大家注意到了吗? 点击「···」> 「LINEマンガ」之后,就可以流畅的看免费漫画了 这里的画面,实际用的是web技术。...确实,简单的组合的话确实会顺利显示页面切换动画,但是如果要让动画流畅,就会有以下一些课题: 「后退按钮点击时的延迟 这是因为Router默认是对dom进行替换操作。...懒加载的图片会重新加载 图片在滚动到可显示位置时才予以加载,除此之外用一个placeholder来占位 - 这是一种常见的优化手段。但是页面后退的时候,图片会重新现实一次,有些违和。...这些问题用一句话总结一下就是「页面后退的时候,之前页面中因为滚动・点击等用户行为所产生的DOM变化如何重现」 参考IOS的实现 为了看起来像原生app,那么我们最好参考一下原生app的实现。...使用示例代码 实现效果 实现Page Stack后,页面切换变得非常流畅。

    60710

    Laravel7使用Auth进行用户认证

    laravel7 版本移除了 auth,大家都知道以前版本是直接使用 php artisan make:auth就可以使用,但是这版本不行了,那么要怎么弄呢?今天和大家说一下具体步骤。...Laravel7 的 laravel/ui 包提供了一种快速方法,可以使用一些简单的命令来支持你进行身份验证所需的所有路由和视图: 安装依赖包laravel/ui 直接使用命令进行安装 composer...数据迁移 先配置数据库,这里我用的是homestead环境,所以连接配置如下 然后执行迁移命令 php artisan migrate 页面使用查看效果 这时候打开首页,我们会发现,右上角多了注册登录按钮...我们会发现直接登录完的页面进入了,然后退出登录。 然后再试一下登录,使用刚才的邮箱和密码。 至此用户认证就实现了。有几个点再说一下。 模版文件resources文件夹内,可以随意修改。...可以 LoginController 里面重写 AuthenticatesUsers 里面的 authenticated() 方法即可。

    5.8K10

    Data Structures (三) - 栈Stack实现

    、恢复撤销等功能的实现都是利用了栈的数据特性,例如浏览器的前进后退功能就可以概括为是由两个栈数据结构实现的。...首先在浏览器中依次访问page1、page2、page3,就相当于依次将page1、page2、page3三个页面push到第一个栈中,第一个栈的栈顶元素就是浏览器当前显示的页面,浏览器最后访问的page3...,浏览器当前显示的页面也是page3。...此时点击后退按钮,相当于把第一个栈中栈顶元素pop弹出并push到第二个栈中,而第一个栈的栈顶元素就变成了page2,所有浏览器显示的页面为page2;再点击一次后退按钮,又把第一个栈的栈顶元素弹出并push...进第二个栈,这是第一个栈的栈顶元素为page1,此时浏览器显示的页面为page1;若点击前进按钮,相当于将第二个栈的栈顶元素page2弹出并push进第一个栈作为栈顶元素,此时浏览器的现实的页面为page2

    25710

    ASP.NET Core Blazor Webassembly 之 路由

    使用@page指定组件的路由path 我们可以Blazor里给每个组件指定一个path,当路由匹配的时候会显示这个组件。...下面我们演示下如何从Page A传递一个参数到Page B。我们预设Page A里面有个UserName需要传递到Page B,并且显示出来。...当选中的时候,也就是当前的url跟它的href一致的时候,会自动class加上active类,所以可以用来控制选中的样式。默认的3个导航菜单就是用的NavLink。...我们Page A页面放个按钮然后通过按钮的点击事件进行跳转: @page "/page/a" PAGE A <button @onclick="GoToB...总结 到此Blazor路由的内容学习的差不多了,整体<em>上</em>没有什么特别的,就是NavigationManager只有前进方法没有<em>后退</em>是比较让我震惊的。

    2.8K10

    如何制作自己的原生 JavaScript 路由

    太糟糕了,因为单击浏览器的“后退”和“前进”按钮与浏览历史记录中的 URL 导航有关。如果没有 History API,就无法谈论路由。...使“后退”和“前进”按钮起作用 通过使用 history.pushState,你将自动使 Back 和 Forward 按钮导航到上一个或下一个状态。这样做会产生 popstate事件。...我的例子中,只用了 router.html。当你第一次 PWA 中加载此路由时,必须确保如果直接在地址栏中输入/page/home时,它可以工作。 到目前为止,我们仅从前端更改了路由器地址。...假定每次你导航到出现在路由按钮的 URL 时,实际都会从服务器单独加载该 URL。 因此你有责任确保/page/about 将路由器和页面的加载到应用程序的根视图中。...它还应突出显示“current”按钮。 实施完毕后,你的路由就完成了。你如何选择重新加载 #content 元素中的内容完全取决于你自己和你的后端设计。

    3.8K20
    领券