Laravel 5.4重新登录实现跳转到登录前页面的原理和方法

 更新时间:2017年07月13日 10:40:08   作者:彼得堡的遗书  
在日常开发中,我们经常遇到一个需求,就是用户登陆后存在过期时间,超时用户需重新登录,下面这篇文章主要给大家介绍了关于Laravel 5.4重新登录实现跳转到登录前页面的原理和方法,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

本文主要给大家介绍的是关于Laravel5.4重新登录跳转到登录前页面的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:

一、应用场景:

用户登陆后存在过期时间,超时用户需重新登录。例:当用户在/user/2 页面,登陆过期后跳转到登陆页面,登陆后用户还应在/user/2而不是home/index。

二、实现原理

在判断用户过期后,存储用户当前的url地址到session中,下次登陆后跳转到此url地址。

三、laravel中的具体实现

路由中间件(判断登陆状态) 这里以cookie是否过期判断用户登陆状态,中间件只判断登陆相关判断和执行,不做多余操作(登录时我使用cookie的值$token作为session的键存储),代码如下:

public function handle($request, Closure $next) {
 //判断cookie是否存在
 if ($token = Cookie::get('token')) {
 //判断session信息,保持状态一致
 if ($request->session()->get($token)) {
  return $next($request);
 }
 }

 //获取当前url,跳转到登陆页
 $returnUrl = urlencode($request->getRequestUri());

 return redirect('/login?reurl=' . $returnUrl); }

登陆端(处理与页面交互以及跳转逻辑)这里做的是跳转到登陆页,这个可以在中间件实现,只有这一句,with实现的是将reurl闪存,提供前端使用。

return redirect('/')->with('reurl', $returnUrl); 

页面端(判断闪存信息) 判断闪存的信息,这里分ajax和submit登陆,submit应该很少了,ajax下获取reurl,然后后端登陆判断reurl。

 @if (session('reurl'))
  <input type="hidden" name="reurl" value="{{ session('reurl') }}"/>
 @endif 

登陆(登陆逻辑) 省略了判断用户账户密码,和存储cookie,session的逻辑,最后前端获取url,location.href = 'url',跳转到原url地址。

$reurl = $request->get('reurl');

$url = empty($reurl) ? '/home/index' : $reurl;

return response($url);

注:本文只贴出了实现重新登录的相关代码,实际代码请按照实际业务做对应修改。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 让php处理图片变得简单 基于gb库的图片处理类附实例代码下载

    让php处理图片变得简单 基于gb库的图片处理类附实例代码下载

    让php处理图片变得简单 基于gb库的图片处理类附实例代码下载,需要的朋友可以参考下。
    2011-05-05
  • PHP实现的自定义数组排序函数与排序类示例

    PHP实现的自定义数组排序函数与排序类示例

    这篇文章主要介绍了PHP实现的自定义数组排序函数与排序类,结合实例形式分析了php自定义二维数组排序函数与排序类的相关实现技巧,需要的朋友可以参考下
    2016-11-11
  • PHP三层结构(上) 简单三层结构

    PHP三层结构(上) 简单三层结构

    我们以一个简单的留言板代码为例,先来看一个最简单的三层结构代码
    2010-07-07
  • PHP+jQuery实现即点即改功能示例

    PHP+jQuery实现即点即改功能示例

    这篇文章主要介绍了PHP+jQuery实现即点即改功能,涉及php数组读取、遍历及jQuery事件响应与动态修改页面元素属性相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • 详解PHP的Yii框架中扩展的安装与使用

    详解PHP的Yii框架中扩展的安装与使用

    这篇文章主要介绍了PHP的Yii框架中扩展的安装与使用,文中列出了Yii中的一些核心扩展,需要的朋友可以参考下
    2016-04-04
  • 解析PHP中empty is_null和isset的测试

    解析PHP中empty is_null和isset的测试

    本篇文章是对PHP中empty is_null和isse的测试进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP的简单跳转提示的实现详解

    PHP的简单跳转提示的实现详解

    这篇文章主要介绍了PHP的简单跳转提示的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • php根据日期显示所在星座的方法

    php根据日期显示所在星座的方法

    这篇文章主要介绍了php根据日期显示所在星座的方法,涉及php针对日期操作与流程控制的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP常用数组函数介绍

    PHP常用数组函数介绍

    编程怎么能少的了数组呢,以下是学习PHP时常用的数组处理函数。在编程中要遵循一个原则就是DRY(Don`t Repeat Yourself)原则,PHP中有大量的函数,都记住这些函数不太现实,但常用的函数还是要熟练使用的,大部分的函数的使用方法可以通过查询PHP的手册来使用。
    2014-07-07
  • 详解PHP安装mysql.so扩展的方法

    详解PHP安装mysql.so扩展的方法

    平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。下面这篇文章主要介绍了PHP安装mysql.so扩展的方法,需要的朋友可以参考下
    2016-12-12

最新评论