Форма логина под любым uri

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Форма логина под любым uri

Сообщение selfauthor »

Есть произвольная страница, например /project/123
Доступ к этой странице должен быть только для зарегистрированных пользователей.
Как сделать, чтобы показывалась форма авторизации, при том, что адрес не менялся бы на какой-нибудь /login, а после авторизации страница просто перевыводилась бы с тем же адресом и уже показывалось то, что положено?
Где вставить проверку на необходимость авторизации и откуда вызывать форму?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Форма логина под любым uri

Сообщение samdark »

А чем URL так не нравится? Фреймворк по умолчанию делает как раз это на отдельном URL.
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Re: Форма логина под любым uri

Сообщение selfauthor »

samdark писал(а): 2023.10.23, 16:43 А чем URL так не нравится?
Ты заходишь на какую-то страницу. Поскольку ты не авторизован, то тебя перебрасывает на форму авторизации. И в урле уже другая страница. Потом, после авторизации, тебя возвращают обратно.
Но практика показывает, что пользователи, у которых что-то не ладится присылают скриншот или адрес страницы. А это уже страница логина. Т.е. непонятно, на какую страницу они заходили при этом.

На yii нельзя устраивать проверку в разных контроллерах и, оставаясь в том же урле показывать форму логина, обрабатывать её и потом перепоказывать ту же страницу?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Форма логина под любым uri

Сообщение samdark »

По-умолчанию, нет.
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Форма логина под любым uri

Сообщение Chelobaka »

Можно сделать общий контроллер с нужным методом login и отнаследоваться от него.
Представление грузить исходя из controller->id
von.hamster
Сообщения: 69
Зарегистрирован: 2013.06.06, 16:07

Re: Форма логина под любым uri

Сообщение von.hamster »

Теоретически, можно сделать behavior на Controller::EVENT_BEFORE_ACTION, перенести функционал авторизации в него.
Внутри него проверять авторизацию. Если нет - рендерить форму. Если есть - просто пропускать.

Или даже через реализацию метода AccessControl::$denyCallback - тогда можно более тонко управлять формой авторизации.
Аватара пользователя
selfauthor
Сообщения: 26
Зарегистрирован: 2023.10.09, 19:35
Откуда: Москва

Благодарю!

Сообщение selfauthor »

Спасибо за варианты!
Буду думать, что удобнее.
Закрыто