yii2.0框架使用 beforeAction 防非法登陆的方法分析
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-17 11:00:59 浏览: 评论:0
本文实例讲述了yii2.0框架使用 beforeAction 防非法登陆的方法,分享给大家供大家参考,具体如下:
beforeAction基本原理:
对比
1、执行顺序
init > beforeAction
2、调用子函数时,两个函数都不会再次执行
3、返回值
init返回false继续执行,beforeAction停止执行
4、执行EXIT,全部停止
从框架的示例代码来看,init用于初始化数据,beforeAction用户事件的处理
代码
- // 登录统一验证
- public function beforeAction( $action ){
- // 验证是否登录
- $is_login = $this->checkLoginStatus();
- if (in_array($action->getUniqueId(), $this->allowAllAction ) ) {
- return true;
- }
- // 是否已经登录了 没有登录的话 判断登录方式
- if(!$is_login) {
- // 如果是ajax方式进行请求
- if ( \Yii::$app->request->isAjax) {
- $this->renderJSON([], "未登录,请返回用户中心", -302);
- } else {
- $this->redirect( UrlService::buildWebUrl("/user/login") );
- }
- return false;
- }
- }
其他的控制器使用的时候进行继承一下就可以了!
class UserController extends BaseWebController
防非法登陆的方法:
首先写一个公共控制器 让其他所以需要防止非法登陆的页面继承一下这个公共控制器
- <?php
- namespace frontend\controllers;
- use Yii;
- use yii\web\Controller;
- class PublicController extends Controller{
- public function beforeAction($action){
- $cookie = \Yii::$app->request->cookies;
- //取出存入的cookie值 括号里写自己定义的cookie名字
- $user_cookie = $cookie->get('user_id');
- //判断是否有cookie
- if(!isset($user_cookie)){
- echo "<script>alert('请先登录');location.href='?r=login/login'</script>";
- }
- return parent::beforeAction($action);
- }
- }
然后在任意一个控制器中加入一段代码 不需要所有控制器都写 只写一个控制器里面就行
- public function beforeAction($action)
- {
- if(!parent::beforeAction($action))
- {
- return false;
- }
- }
Tags: yii2 0防非法登陆 beforeAction
相关文章
- ·yii2超好用的日期组件和时间组件(2019-07-30)
- ·yii2的ActiveForm表单使用的方法介绍(2020-02-15)
- ·Yii2框架的csrf验证原理分析及token缓存解决方案(2020-04-05)
- ·Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源(2021-03-01)
- ·yii2.0之GridView自定义按钮和链接用法(2021-05-03)
- ·列举PHP的Yii 2框架的开发优势(2021-06-08)
- ·Yii2.0高级框架数据库增删改查的一些操作(2021-06-26)
- ·实例讲解yii2.0在php命令行中运行的步骤(2021-06-27)
- ·yii2.0使用Plupload实现带缩放功能的多图上传(2021-06-30)
- ·yii2.0实现验证用户名与邮箱功能(2021-06-30)
- ·yii2中添加验证码的实现方法(2021-07-05)
- ·YII2.0之Activeform表单组件用法实例(2021-07-05)
- ·yii2中使用Active Record模式的方法(2021-07-05)
- ·yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析(2021-07-05)
- ·Yii2框架引用bootstrap中日期插件yii2-date-picker的方法(2021-07-05)
- ·yii2中的rules 自定义验证规则详解(2021-07-29)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)