laravel完成权限验证(laravel实现Auth认证,登录、注册后的页面回跳方法)
类别:编程学习 浏览量:533
时间:2021-10-13 00:15:30 laravel完成权限验证
laravel实现Auth认证,登录、注册后的页面回跳方法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认证,登录、注册后的页面回跳方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/beyond__devil/article/details/76212267
您可能感兴趣
- laravel 后台管理框架(关于Laravel-admin的基础用法总结和自定义model详解)
- laravel数据转换层(laravel通过a标签从视图向控制器实现传值)
- laravel数据库数据代码(在Laravel的Model层做数据缓存的实现)
- laravel自定义条件查询(解决laravel groupBy 对查询结果进行分组出现的问题)
- laravel框架注意事项(Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决)
- laravel新增数据表(laravel 多图上传及图片的存储例子)
- laravel设置跨域请求(解决laravel 出现ajax请求419unknown status的问题)
- laravel开发登录接口(解决laravel5中auth用户登录其他页面获取不到登录信息的问题)
- laravel队列使用场景(Laravel使用RabbitMQ的方法示例)
- laravel接口请求模拟(Laravel 类和接口注入相关的代码)
- laravel命令大全详解(Laravel框架中缓存的使用方法分析)
- laravel count 报错(解决laravel5.5访问public报错的问题)
- laravel 前后端开发(在Laravel中实现使用AJAX动态刷新部分页面)
- laravel 模型(Laravel 模型关联基础教程详解)
- laravel数据库管理教程(Laravel基础_关于view共享数据的示例讲解)
- laravel获取访问来路的函数(Laravel实现搜索的时候分页并携带参数)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
热门推荐
- .NET get、post 请求
- sql server 报错(sql server利用不同语种语言显示报错错误消息的方法示例)
- dedecms后台账号(dedecms批量删除会员的SQL命令)
- python分割字符串要用哪一个语句(python使用threading.Condition交替打印两个字符)
- linux后台运行程序的命令(在后台运行Linux命令的方法)
- python数字形式转换详解(Python3.5实现的罗马数字转换成整数功能示例)
- vs中debug和release的区别
- Sql如何删除重复记录
- SQL Server Profile事件含义
- docker容器退出错误码的步骤(docker容器退出错误码的步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9