UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Daisar от 03 Декабря 2013, 12:28:06

Название: Авторизация на сайте
Отправлено: Daisar от 03 Декабря 2013, 12:28:06
Привет!

Натягиваю сторонний шаблон на umi.

Возник вопрос: как в xslt прописывать авторизацию на сайте?

Верстаю форму по примеру из документации:

http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/polzovateli/users_login/#xslt-templating (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/polzovateli/users_login/#xslt-templating)

А что делать дальше?

Как обрабатываются в системе лог и пасс?

Пользователь перенаправляется на /users/login_do/ и все.

Что дальше надо прописывать в шаблонах?

В demodizzy поковырялся, тоже не понял как это там происходит.

Поясните, пожалуйста, сей момент.
Название: Re:Авторизация на сайте
Отправлено: admin от 03 Декабря 2013, 12:48:49
авторизация на сайте в простейшем варианте, это форма где уц вас запраивают логин и пароль, данная форма отправляется на макрос users login_do(), который и проводит авторизацию пользователя или выдает сообщение если была допущена ошибка.
Название: Re:Авторизация на сайте
Отправлено: Daisar от 03 Декабря 2013, 12:52:01
Спасибо! Но макрос /login_do/ мне возвращает страницу с некоторыми значениями.

Авторизации фактически не происходит.

Это видно по доступу в /admin/, который предлагает снова ввести данные.
Название: Re:Авторизация на сайте
Отправлено: admin от 03 Декабря 2013, 12:57:02
Спасибо! Но макрос /login_do/ мне возвращает страницу с некоторыми значениями.

Авторизации фактически не происходит.

Это видно по доступу в /admin/, который предлагает снова ввести данные.

если мы говорим об авторизации с лицевой части, и если после ввода данных вы подозреваете что не авторизовались, то проверьте нет ли у вас в адресной строке признаков ошибок, которые выводятся в виде понятного текста при помощи макроса %system listErrorMessages()% (читайте про это в документации (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_listerrormessages/))

При этом не забывайте, что для входа в админку( http://ваш_сайт/admin/) у пользователя, под которым вы авторизуетесь, должны быть права на доступ к админке. Если мы говорим о супервайзере, то у него эти права конечно есть, а если об обычном "зарегистрированном пользователе", то у него нет.
Название: Re:Авторизация на сайте
Отправлено: Daisar от 03 Декабря 2013, 13:07:51
Цитата: admin link=topic=1698.msg7203#msg7203
При этом не забывайте, что для входа в админку( http://ваш_сайт/admin/) у пользователя, под которым вы авторизуетесь, должны быть права на доступ к админке. Если мы говорим о супервайзере, то у него эти права конечно есть, а если об обычном "зарегистрированном пользователе", то у него нет.

С лицевой части авторизовываюсь супервайзером.


если мы говорим об авторизации с лицевой части, и если после ввода данных вы подозреваете что не авторизовались, то проверьте нет ли у вас в адресной строке признаков ошибок, которые выводятся в виде понятного текста при помощи макроса %system listErrorMessages()% (читайте про это в документации (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_listerrormessages/))

Не совсем понял ваш совет. После авторизации мне надо этот макрос инициализировать?

А то что я не авторизован, я понял по тому, что в шапке сайта есть другой макрос, который "отделяет" гостей от пользователей и выводит в зависимости от этого разные данные.
Название: Re:Авторизация на сайте
Отправлено: admin от 03 Декабря 2013, 13:21:20
А то что я не авторизован, я понял по тому, что в шапке сайта есть другой макрос, который "отделяет" гостей от пользователей и выводит в зависимости от этого разные данные.

чтобы проверить наверняка, авторизованны вы или нет, откройте любую страницу добавив в конце /.xml и найдите узел <user>, дочерний к узлу result. Для гостя он будет выглядеть примерно так "<user id="13" type="guest"/>"


Не совсем понял ваш совет. После авторизации мне надо этот макрос инициализировать?

обычно, система перекидывает на страницу /users/login_do, когда произошла ошибка при авторизации (например вы ввели не тот пароль). возможно вы вводите не те логин\пароль, а возможно в вашей форме которую вы вставляли с http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/polzovateli/users_login/#xslt-templating неправильные namу у соответствующих input. Проверьте они должны быть идентичны тем что в примере из документации.

P.S. по поводу макроса %system listErrorMessages()% поторопился, при неправильной авторизации ошибок вида ?_err=343433244 не выводиться, это актуально для отправки форм обратной связи и т.п.

Название: Re:Авторизация на сайте
Отправлено: Daisar от 03 Декабря 2013, 15:04:00
возможно вы вводите не те логин\пароль, а возможно в вашей форме которую вы вставляли с http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/polzovateli/users_login/#xslt-templating неправильные namу у соответствующих input. Проверьте они должны быть идентичны тем что в примере из документации.

P.S. по поводу макроса %system listErrorMessages()% поторопился, при неправильной авторизации ошибок вида ?_err=343433244 не выводиться, это актуально для отправки форм обратной связи и т.п.



Сейчас сделал вообще по "тупому". Просто скопировал пример из документации и добавил его в шаблон. Реакция точно такая же.

Вопрос еще такой:

<xsl:param name="_http_referer" />

Что это за параметр?

Я его вставляю перед формой в шаблоне. Это верно? Или он где-то иначе определяется?
Название: Re:Авторизация на сайте
Отправлено: admin от 03 Декабря 2013, 17:08:57
вставьте самый минимальный вариант формы авторизации:

<form action="/users/login_do/" method="post">
   <label for="login"><b>Логин:</b></label><br />
   <input type="text" id="login" name="login" class="textinputs" value=""/><br />
   <label for="password"><b>Пароль:</b></label><br />
   <input type="password" id="password" name="password" class="textinputs" value=""/><br />
   <p>
    <input type="submit" value="Вход"/>
   </p>
 </form>

и убедитесь что
1. ваш логи и пароль верные (попробуйте авторизоваться через http://ваш_сайт/admin/ )
2. убедитесь, что вы гость перед авторизацией и что вы им остались после отправки формы (откройте любую страницу добавив в конце /.xml и найдите узел <user>, дочерний к узлу result. Для гостя он будет выглядеть примерно так "<user id="13" type="guest"/>")

P.S. Либо у вас какая-то особенность на сайте, либо мы в упор не видим какой-то проблемы
Название: Re:Авторизация на сайте
Отправлено: Daisar от 03 Декабря 2013, 17:21:37
Спасибо большое! С вашей формы я спокойно авторизовался. Значит буду смотреть свой код на ошибки.

Тогда следующие пара вопросов:

1) Как редиректнуть пользователя после авторизации на нужную страницу?

2) В случае неправильного пароля как перебросить пользователя на нужную страницу? Хотя бы на ту, где был введен пароль.

Или тут мы берем обработчик страницы /users/login_do/ и считаем, что если пользователь увидел эту страницу, значит что-то не так?

3) Гость, по умолчанию, имеет свою "корзину", которую может наполнять по мере просмотра сайта?