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 相关文章推荐
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
php封装实现钉钉机器人报警接口的示例代码
Aug 08 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
百度地图api如何使用
2015/08/03 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python入门篇之面向对象
2014/10/20 Python
Python实现的ini文件操作类分享
2014/11/20 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
Python的argparse库使用详解
2018/10/09 Python
简单介绍django提供的加密算法
2019/12/18 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
Python日志处理模块logging用法解析
2020/05/19 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
公司人力资源的自我评价
2014/01/02 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
Python常遇到的错误和异常
2021/11/02 Python
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
Java获取字符串编码格式实现思路
2022/09/23 Java/Android