laravel实现Auth认证,登录、注册后的页面回跳方法


Posted in PHP onSeptember 30, 2019

laravel自带的 auth 认证中间件 - app/Http/Middleware/Authenticate.php

查看源码:

if (Auth::guard($guard)->guest()) {
  if ($request->ajax() || $request->wantsJson()) {
   return response('Unauthorized.', 401);
  } else {
   return redirect()->guest($guard.'/login');
  }
 }

里面,对于检测到用户未登录,重定向到登录页面,使用了 'redirect()->guest()' 的方法!

可查看guest()源码:

public function guest($path, $status = 302, $headers = [], $secure = null)
 {
  $this->session->put('url.intended', $this->generator->full()); // 设置回跳地址
 
  return $this->to($path, $status, $headers, $secure);
 }

做了2件事:

1.给session中,设置了当前访问的url链接!(用于我们登录成功后,回跳回来!)

2.跳转到,我们指定的登录页面

接着,自带的auth机制中,看看它的登录成功后的操作:

protected function handleUserWasAuthenticated(Request $request, $throttles)
 {
  if ($throttles) {
   $this->clearLoginAttempts($request);
  }
 
  if (method_exists($this, 'authenticated')) {
   return $this->authenticated($request, Auth::guard($this->getGuard())->user());
  }
 
  return redirect()->intended($this->redirectPath()); // 获取回跳地址
 }

获取到之前的 '回跳地址',跳转!

这里,我想说明的一点是:

我们有时间觉得laravel很不好用,主要是我们对它内部的东西,并不熟悉。就拿今天说的这个auth认证。不用laravel默认的登录注册可以,但仍需要借助它的Auth系列方法!因为很方便。包括这些 redirect() 的方法等。

今天记录下,这个问题,怕过段时间又忘记了。登录、注册,借助redirect()的 guest() 和 intended(),免去了我们自己借助session或cookie,来记录页面的回跳地址,人家已经集成了,还很优美,为什么不用!

以上这篇laravel实现Auth认证,登录、注册后的页面回跳方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP学习之整理字符串
Apr 17 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
Laravel框架表单验证操作实例分析
Sep 30 #PHP
Laravel 自带的Auth验证登录方法
Sep 30 #PHP
laravel 使用auth编写登录的方法
Sep 30 #PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 #PHP
php面试实现反射注入的详细方法
Sep 30 #PHP
laravel5表单唯一验证的实例代码
Sep 30 #PHP
Laravel模糊查询区分大小写的实例
Sep 29 #PHP
You might like
提升PHP执行速度全攻略
2006/10/09 PHP
计数器详细设计
2006/10/09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
组合算法的PHP解答方法
2012/02/04 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python中实现结构相似的函数调用方法
2015/03/10 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python计算日期之间的放假日期
2018/06/05 Python
python将list转为matrix的方法
2018/12/12 Python
python实现图片九宫格分割
2021/03/07 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
应届生体育教师自荐信
2013/10/03 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
中学生运动会入场词
2014/02/12 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
企业精神口号
2014/06/11 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
合作协议书格式
2014/08/19 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
党员个人党性分析材料
2014/12/18 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
结婚幸福感言
2015/08/01 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
修改并编译golang源码的操作步骤
2021/07/25 Golang