首頁 >後端開發 >php教程 >如何解決Yii2針對遊客和使用者防範規則和限制

如何解決Yii2針對遊客和使用者防範規則和限制

不言
不言原創
2018-06-15 16:24:042012瀏覽

這篇文章主要介紹了Yii2針對遊客、用戶防範規則和限制的解決方法,簡單分析了Yii2對於遊客、用戶防範規則和限制的原理與相應的設置方法,需要的朋友可以參考下

本文實例分析了Yii2針對遊客、使用者防範規則和限制的解決方法。分享給大家供大家參考,具體如下:

最近在用Yii2.0做項目,其中需要實現一個功能:沒有登入不能訪問部分頁面,即遊客身份訪問限制。查了半天資料,終於找到答案。解決方法如下:

在access裡,access即存取的意思,其中有個設定項:

'only'=>['login','about']

這是什麼意思呢,意思是僅在login、about兩個action內起作用,即當action 是login、about時,會進入rules裡做下一步驗證。

但是 我們想除了登入、註冊以外其他action均不允許存取怎麼辦呢?還有其他的配置,我們把only 改成 except,什麼意思呢,是除去什麼什麼之外的意思,就是說對除了 login、signup以外的action起作用。接下來,在:

rules=>[['action'=>['login','signup'],'allow'=>true,'roles'=>['?']]]

裡,rules就是規則,這裡邊可以寫多條,actions是指規則針對哪個action,allow指是否允許訪問,'roles'這個字段是關鍵的,這是允許訪問的角色。 其中?代表遊客,@代表已登入的使用者

public function behaviors()
{
 return [
  'access' => [
   'class' => AccessControl::className(),
   'except' =>['login','signup'],
   'rules' => [
    [
     'actions' => ['login','signup'],
     'allow' => true,
     'roles' => ['?'],
    ],
   ],
  ],
  'verbs' => [
   'class' => VerbFilter::className(),
   'actions' => [
    'logout' => ['post'],
   ],
  ],
 ];
}

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

如何處理Yii2.0 Basic程式碼中路由連結被轉義

關於yii2中結合gridview使用modal彈窗的程式碼

如何實作用yii2.0建立簡單的widgets

#

以上是如何解決Yii2針對遊客和使用者防範規則和限制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn