溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決Yii2針對游客與用戶防范規(guī)則和限制的問題

發(fā)布時間:2021-09-16 15:33:50 來源:億速云 閱讀:89 作者:柒染 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)如何解決Yii2針對游客與用戶防范規(guī)則和限制的問題,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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

在access里,access即訪問的意思,其中有個配置項:

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

這是什么意思呢,意思是僅僅在login、about兩個action內(nèi)起作用,即當(dāng)action 是login、about時,會進(jìn)入rules里做下一步驗(yàn)證。

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

復(fù)制代碼 代碼如下:

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

里,rules就是規(guī)則,這里邊可以寫多條,actions是指規(guī)則針對哪個action,allow指是否允許訪問,'roles'這個字段是關(guān)鍵的,這是允許訪問的角色。其中?代表游客,@代表已登錄的用戶。

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'],
   ],
  ],
 ];
}

以上就是如何解決Yii2針對游客與用戶防范規(guī)則和限制的問題,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI