007真人007真人

来源:乐虎lehu国际娱乐之家  责任编辑:小易  

前言

本文主要给大家介绍的是关于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);

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

总结

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

您可能感兴趣的文章:


  • 本文相关:
  • laravel5.1自定义500错误页面示例
  • laravel框架基于中间件实现禁止未登录用户访问页面功能示例
  • laravel 框架配置404等异常页面
  • laravel框架formrequest中重写错误处理的方法
  • laravel中错误与异常处理的用法示例
  • laravel 5异常错误:fatalerrorexception in handler.php line 38的解决
  • laravel migrate初学常见错误的解决方法
  • laravel实现自定义错误输出内容的方法
  • laravel中常见的错误与解决方法小结
  • laravel 5.3 学习笔记之 错误&日志
  • laravel5框架自定义错误页面配置操作示例
  • php实现统计一个数字在排序数组中出现次数的方法
  • php mailer类调用远程smtp服务器发送邮件实现方法
  • php下网站防ip攻击代码,超级实用
  • php读取并输出xml文件数据的简单实现方法
  • php之readdir函数用法实例
  • php遍历目录输出目录及其下的所有文件示例
  • php实现插入排序
  • php定义一个参数带有默认值的函数实例分析
  • php实现判断访问来路是否为搜索引擎机器人的方法
  • 通过php cli实现简单的亚洲最佳在线娱乐平台实时监控调度
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.pradaoutletonline.net All Rights Reserved