[SendIt 2.2.0] Авторизация по любому полю. Генерация username.
Приветствую, коллеги. Это будет короткая заметка о новых функциях компонента, которые ещё немного расширяют его возможности и облегчают жизнь разработчику
Генерация username
Как было раньше. В качестве username устанавливалось значение поля, ключ которого был передан в параметре usernameField.
Как стало теперь. Если параметр usernameField отсутствует в пресете (по умолчанию отсутствует) или он равен username и в данных с фронта в поле с этим ключом нет значения, будет сгенерирован username.
!!! ВАЖНО!!!
При использовании генерации username вам следует учитывать тот факт, что какие бы данные ни вводил пользователь всегда будет генерироваться УНИКАЛЬНЫЙ username. Таким образом может быть создано неограниченное количество пользователей с одинаковыми данными, но разными username. Другим словами проверка уникальности данных пользователя проходящего регистрацию лежит на разработчике сайта.
Если вам это не нужно, добавьте параметр usernameField в пресет с нужным значением.
Авторизация по любому полю
Как было раньше. В параметре usernameField передавался ключ поля, в котором пользователь указывал свой username.
Как стало теперь. В параметре usernameField передается ключ поля, по которому будет найден username пользователя. Таким образом пользователь может ввести, например, свой номер телефона и будет авторизован по нему, при этом username может быть любым.
!!! ВАЖНО!!!
Значение в поле, по которому будет происходить поиск username, должно быть уникальным для каждого пользователя.
Спасибо за внимание!
Генерация username
Как было раньше. В качестве username устанавливалось значение поля, ключ которого был передан в параметре usernameField.
Как стало теперь. Если параметр usernameField отсутствует в пресете (по умолчанию отсутствует) или он равен username и в данных с фронта в поле с этим ключом нет значения, будет сгенерирован username.
!!! ВАЖНО!!!
При использовании генерации username вам следует учитывать тот факт, что какие бы данные ни вводил пользователь всегда будет генерироваться УНИКАЛЬНЫЙ username. Таким образом может быть создано неограниченное количество пользователей с одинаковыми данными, но разными username. Другим словами проверка уникальности данных пользователя проходящего регистрацию лежит на разработчике сайта.
Если вам это не нужно, добавьте параметр usernameField в пресет с нужным значением.
Авторизация по любому полю
Как было раньше. В параметре usernameField передавался ключ поля, в котором пользователь указывал свой username.
Как стало теперь. В параметре usernameField передается ключ поля, по которому будет найден username пользователя. Таким образом пользователь может ввести, например, свой номер телефона и будет авторизован по нему, при этом username может быть любым.
!!! ВАЖНО!!!
Значение в поле, по которому будет происходить поиск username, должно быть уникальным для каждого пользователя.
Спасибо за внимание!
Поблагодарить автора
Отправить деньги
Комментарии: 10
Привет! Спасибо за полезный апдейт. Так глядишь и совсем забудем когда-то популярный компонент Login и даже возможно Office — потому что таких удобных фишечек там нет, а костыли уж надоели :)
популярный компонент LoginПо моему скромному мнению, его давно надо забыть, так как он не умеет в ajax.
По прежнему не доступ для скачивания под modx 3
Красава!
Как раз делал авторизацию / регистрацию, и протестировал. Сработало на отлично.
Но вот так же возник вопрос по поводу параметра «usergroupsField» при регистрации.
В документации написано что это «имя поля выбора группы»
Я в пресете указал
В документации примера не нашел.
Можете подсказать это так работает или я не правильно понял смысл этого параметра?
Но вот так же возник вопрос по поводу параметра «usergroupsField» при регистрации.
В документации написано что это «имя поля выбора группы»
Я в пресете указал
'usergroupsField' => 'usergroup',
а сама форма HTML имеет такой выбор<input type="radio" name="usergroup" value="2" checked>
<input type="radio" name="usergroup" value="3">
Но регистрация не проходит в нужную группу. В документации примера не нашел.
Можете подсказать это так работает или я не правильно понял смысл этого параметра?
В целом всё правильно ты понял, но в поле usergroup должен быть массив. В следующем обновлении сделаю так, чтобы можно было передавать строку.
Сегодня обновился, и всё сработало.
Теперь очень удобно.
Спасибо большое за ваш труд.
Если можно, можете уточнить еще момент.
Наткнулся в документации при авторизации на такой параметр.
Я правильно понимаю, что если в форме будет input поле как в вашем примере, то сообщение об удачной или не удачной авторизации должно появится в этом поле?
Если так, то почему то сообщение не работает оно всё так же во всплывающем окне отображается. Или я опять не так всё понял.
Теперь очень удобно.
Спасибо большое за ваш труд.
Если можно, можете уточнить еще момент.
Наткнулся в документации при авторизации на такой параметр.
'errorFieldName' => 'errorLogin'
написано — в этом параметре необходимо указать имя скрытого поля, в которое будет записан текст ошибки авторизации, если оставить пустым ошибка будет показана во вплывающем сообщении.Я правильно понимаю, что если в форме будет input поле как в вашем примере, то сообщение об удачной или не удачной авторизации должно появится в этом поле?
Если так, то почему то сообщение не работает оно всё так же во всплывающем окне отображается. Или я опять не так всё понял.
Смотри. Исторически так сложилось, что в форме есть поля и ошибки связаны с этими полями. Чтобы связать текст ошибки с полем нужно добавить блок с атрибутом data-si-error=«fieldName» где fieldName имя проверяемого поля. При авторизации проверяются сразу два поля Логин и Пароль, так вот параметр 'errorFieldName' нужен чтобы связать ошибку авторизации с полем. Можно с логином, можно с паролем, а я рекомендую делать скрытое поле.
P.S. описание параметра в доке не очень понятное надо исправить.
P.S. описание параметра в доке не очень понятное надо исправить.
Теперь всё понятно.
Спасибо за разъяснение.
Спасибо за разъяснение.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.