找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 453|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2652

主题

2652

帖子

7872

积分

论坛元老

Rank: 8Rank: 8

积分
7872
跳转到指定楼层
楼主
发表于 2018-2-14 05:24:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            前言
本文主要给大家介绍的是关于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'))
  
@endif
登陆(登陆逻辑) 省略了判断用户账户密码,和存储cookie,session的逻辑,最后前端获取url,location.href = 'url',跳转到原url地址。
$reurl = $request->get('reurl');
$url = empty($reurl) ? '/home/index' : $reurl;
return response($url);
注:本文只贴出了实现重新登录的相关代码,实际代码请按照实际业务做对应修改。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
            
            
您可能感兴趣的文章:
  • Laravel框架表单验证详解
  • Laravel实现用户注册和登录
  • Laravel 5框架学习之表单验证
  • 在Laravel框架里实现发送邮件实例(邮箱验证)
  • Laravel框架实现发送短信验证功能代码
  • Laravel中使用FormRequest进行表单验证方法及问题汇总
  • Laravel重写用户登录简单示例
  • laravel5.2实现区分前后台用户登录的方法
  • 详解用vue.js和laravel实现微信授权登陆
  • 基于Laravel5.4实现多字段登录功能方法示例
  • Laravel框架用户登陆身份验证实现方法详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端