Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

logingeneration

Це стара версія документу!


Генерация логинов

По умолчанию Ubilling рекомендует полгагаться на встроенную механику генерации логинов для регистрируемых пользователей. Это позволит избавить себя от лишней ручной работы и от неприятных неожиданностей. Начиная с релиза 0.3.4 генерация логинов может управляться опцией LOGIN_GENERATION конфига alter.ini

Поддерживаются следующие опции генерации логинов:

  • DEFAULT - Включено по умолчанию и рекомендуется. Логины будут генерироваться по формуле: [алиас города]+[алиас улицы]+[номер дома]+ap+[номер квартиры]+_(немного рандома) и будут иметь вид, например “shev262ap26_hugk” для пользователя проживающего по адресу “Шевченка 262/26”
  • ONLYADDRESS - точно так-же как и по умолчанию только без “немного рандома”, то есть например “shev262ap26”
  • TIMESTAMP - в качестве логина будет использоваться Unix timestamp - предполагаемый логин будет иметь вид, например “1353443162”
  • TIMESTAMPMD5 - в качестве логина будет ипользоваться md5 хеш от Unix timestamp и логины будут иметь вид, например “3d3731ecbed02d8497d9dc3e601e9f8d”
  • RANDOM - будет сгенерирована случайная 10-ти символьная строка вида “ao8cg8a7p2”
  • RANDOMSAFE - будет сгенерирована случайная 10-ти символьная строка без сильно похожих между собой символов.
  • INCREMENT - логин в форме простого инкремента, то есть “1, 2, 3… и тд”
  • INCREMENTFOUR - четырехзначный логин в форме инкремента, то есть вида “0001, 0002, 0003 и тд”(читаем про RANDOM4)
  • INCREMENTFIVE - пятизначный логин в форме инкремента, то есть вида “00001, 00002, 00003 и тд”
  • INCREMENTSIX - шестизначный логин в форме инкремента, то есть вида “000001, 000002, 000003 и тд”
  • INCREMENTFOURREV - четырехзначный логин в форме инкремента но в обратную сторону, то есть вида “1000, 2000, 3000 итд”(так же читаем про RANDOM4)
  • INCREMENTFIVEREV - пятизначный логин в форме инкремента но в обратную сторону, то есть вида “10000, 20000, 30000 итд”
  • INCREMENTSIXREV - шестизначный логин в форме инкремента но в обратную сторону, то есть вида “100000, 200000, 300000 итд”
  • VSRAT_INCREMENT - логины будут генерироваться по формуле: [алиас города]+[алиас улицы]+_(счетчик). Стоит понимать что счетчик будет уникальным в пределах алиасов. Если у улиц нет алиасов - счетчик будет уникальный для города. Если у улиц есть алиасы то счетчик будет уникальным для каждой пары город+улица.
  • IPBASED - логин на основании IP, например для пользователя с IP 192.168.56.18 будет логин “192x168x56x18”
  • IPBASEDLAST - логин на основании последних двух октетов IP, то есть для пользователя с IP 192.168.56.18 будет логин “056018”
  • DEREBAN - логины можно разделять между существующими контрагентами. Имеют вид шестизначного инкремента + префикс в виде ID контрагента в начале.
  • RANDOM8 - логины из 8-ми рандомных циферок.
  • RANDOM4 - логины из 4-х рандомных циферок, включая ведущие нули(т.е. “0024” или “0127”). Для людей на 146% уверенных, что более 9999 логинов им никогда не понадобиться и вообще. Крайне повышает шансы очень больно выстрелить себе в ногу.
  • RANDOM4_CHECK - то же, что и RANDOM4, но с проверкой уникальности логина среди существующих. если что - проверка осуществляется в бесконечном цикле, и, соответственно, при приближении количества логинов к 9999, тупить в момент генерации логина(регистрации юзера, то бишь) оно будет всё больше и больше. Вопреки могущему сложиться обманчивому мнению о надёжности - может прострелить вам обе ноги сразу…
  • PRFXINC - генерирует инкрементные логины с префиксами вида UB1000000,UB2000000.. итд. Строка префикса управляется опцией LOGIN_GENERATION_SHPRFX.
  • ONEPUNCH - за вами пристально наблюдают санитары. Не привлекайте к себе внимания.

Если вы точно не уверены что делаете и чем это для вас может светить в дальнейшем - пожалуйста, оставьте эту опцию как есть в значении DEFAULT.

Немного кастомизации

Также, в базовом варианте, посредством следующих опций alter.ini вы можете влиять на поведение стоковых генераторов логинов.

LOGIN_GENERATION_INCOFFSET=1
LOGIN_GENERATION_INCMAX=100000
LOGIN_GENERATION_AD="ap"
LOGIN_GENERATION_SHPRFX="UB"
LOGIN_GENERATION_OPALIAS="logingenerator"

тоесть, например, для генерации инкрементных логинов начиная с 666, во славу сотоне конечно же, вы можете установить опцию LOGIN_GENERATION_INCOFFSET=666 и радоваться жизни.

Для особо изобретательных

Начиная с релиза Ubilling 1.3.0 генераторы логинов лежат отдельными кусочками кода в api/vendor/login_generators/ откуда вызываются “в лоб” по их имени указанному в опции LOGIN_GENERATION. Каждый из них, обязан в процесе своей работы устанавливать значение $this→loginProposal которое далее будет обрабатываться в рамках класса SayMyName. Что в теории, дает безграничные возможности для реализации ваших больных фантазий на тему того, как должны выглядеть логины ваших пользователей.

Чисто как пример:

VSRATDATE
$this->loginProposal = 'U'.date("YmdHis");

для генерации логинов вида U+ГГммддЧЧммсс. В случае Если вам захочется управляемый префикс, при помощи дефолтной опции LOGIN_GENERATION_SHPRFX вы можете обратиться к ее значению как-то так:

VSRATDATE
$this->loginProposal = $this->sharedPrefix.date("YmdHis");

Короче, вы можете обращаться в к любым пропертям класса SayMyName, внутри ваших генераторов. Также им по-умолчанию доступны проперти busyLogins содержащие все уже занятые логины и altCfg содержащий alter.ini в виде как key⇒value.

А что с переносимостью этого всего? Ну если это очень-очень укуренный кастом, которвый вам очень стыдно показывать людям, вы можете держать код вашего генератора логинов в одном из ваших One-Punch скриптов указав режим генерации логинов LOGIN_GENERATION=ONEPUNCH. По умолчанию предполагается алиас logingenerator но вы можете переназначить его при помощи опции LOGIN_GENERATION_OPALIAS.

Вот прямо так:

Теперь вам достаточно возможностей чтобы накрепко ебануться?

logingeneration.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1