W mojej aplikacji Yii2 próbuję zmusić wszystkich użytkowników do uwierzytelnienia. Jeśli nie są jeszcze uwierzytelnione, powinny zostać przekierowane na stronę logowania.Globalny filtr/zachowanie Yii2 zmuszające użytkownika do uwierzytelnienia najpierw
W Yii1 zrobiłem to, tworząc klasę, która sprawdzi, czy użytkownik był zalogowany i dołączając tę klasę do zachowania onBeginRequest
w moim głównym pliku konfiguracyjnym.
// Yii 1
'behaviors' => array(
'onBeginRequest' => array(
'class' => 'application.components.RequireLogin',
)
),
Jak mogę uzyskać takie samo zachowanie w Yii2? Wiem, że mogę użyć tego zachowania, ale nie chcę dodawać tego zachowania do mojego głównego pliku konfiguracyjnego, więc wszystkie żądania są najpierw sprawdzane pod kątem uwierzytelniania.
Sposób zachowania pracy wygląda następująco:
// Yii2
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
Czy próbowałeś dodać kontrolę dostępu do kontrolera base? – karlingen