介绍
本篇文章给大家分享的是有关怎么在yii2.0框架中利用beforeAction防非法登陆,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> beforeAction基本原理:强>
<强>对比强>
1,执行顺序
init祝辞beforeAction
2,调用子函数时,两个函数都不会再次执行
3,返回值
init返回假继续执行,beforeAction停止执行
4,执行退出,全部停止
从框架的示例代码来看,init用于初始化数据,beforeAction用户事件的处理
<强>代码
强>
//,登录统一验证 public function  beforeAction (, action 美元;){//,,验证是否登录 ,,is_login 美元;=,$ this→checkLoginStatus (); ,,,if (in_array(行动→美元getUniqueId (), $ this→allowAllAction ),), { ,,,,,return 真实; ,,,}//,是否已经登录了,没有登录的话,判断登录方式 ,,,如果(! $ is_login), {//,,如果是ajax方式进行请求 ,,,,,if (美元,\ Yii:应用程序→请求→isAjax), { ,,,,,,,这个→美元renderJSON([],“未登录,请返回用户中心,,,-302); ,,,,,},{else ,,,,,,,这个美元→重定向(,UrlService: buildWebUrl (“/user/login"),); ,,,,,} ,,,,,return 假; ,,,} }
其他的控制器使用的时候进行继承一下就可以了!
class UserController extends BaseWebController
<>强防非法登陆的方法:强>
首先写一个公共控制器让其他所以需要防止非法登陆的页面继承一下这个公共控制器
& lt; php ? namespace 前端\控制器; use , Yii; use , yii \ web \控制器; {class PublicController  extends 控制器 ,public function  beforeAction(行动){ 时间=美元才能cookie \ Yii:应用程序→美元请求→饼干;//取才能出存入的cookie值,括号里写自己定义的饼干名字=美元才能user_cookie 饼干→美元得到(& # 39;user_id # 39;);//才能判断是否有饼干 如果才能(!收取(user_cookie美元)){ ,,echo “& lt; script>警报(& # 39;请先登录& # 39;);location.href=https://www.yisu.com/zixun/? r=登录/登录'> 脚本”; } 返回父:beforeAction(行动); } }
然后在任意一个控制器中加入一段代码不需要所有控制器都写只写一个控制器里面就行
public function beforeAction(动作) { 如果才能(!父:beforeAction(动作)美元) {才能 ,,return 假; ,,} }
以上就是怎么在yii2.0框架中利用beforeAction防非法登陆,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。