В этом разделе описываются распознаваемые паспортом переменные, их способы передачи, допустимые значения и реакция паспорта на различные значения этих переменных.
О том как полученные данные обрабатываеются подсистемой ввода/вывода паспорта и разделяются на переменные и их значения можно посмотреть в разделе
Входные данные.
Эта переменная определяет режим работы паспорта и её значение имеет преоритет над всеми остальными переменными. Это значит, что режим работы в первую очередь определяется значением переменной mode, и только потом проверяются значения остальных переменных, которые интерпретируются в соответствии со значением переменной mode, или иначе - в соответствие с контекстом текущего режима работы.
Допустимыми значениями переменной mode являются названия режимов работы паспорта. Эти названия перечислены в разделе
Режимы функционирования.
Если значение переменной не совпадает ни с одним из допустимых названий режимов работы, или значение не установлено, то значение будет принято равным auth. Эта проверка происходит в самом начале обработки значений переменных сразу после их разбора.
ВНИМАНИЕ: не полагайтесь на описанное поведение - в дальнейшем режим по умолчанию может измениться. Всегда в явном виде указывайте значение режима работы.
Эта переменная служит для определения вызвавшего паспорт проекта. В соответствии со значением этой переменной выбираются части учётной записи, которые нужно получить или модифицировать. Например, по значению переменной from выбирается номер службы в таблице subscription.
Значение этой переменной не влияет на выбор служебного имени по которому будет проводится авторизация - авторизация всегда производится по единому служебному имени - логину Яндекса.
Допустимыми значениями данной переменной являются имена проектов, реакция на вызов из которых паспорта определена. На данный момент это:
from не совпало не с одним из допустимых, или значение не установлено, то значение принмается равным passport.
Эта переменная служит для установки адреса (url) на который должен быть переадресован пользователь после того, как паспорт закончит всю определённую режимом работу. Это означает, что если какой-либо проект вызвал паспорт для выполнения каких-либо действий, то он может выставить эту переменную, и после завершения всех необходимых действий, которые потребовались для выполнения задания, паспорт переадресует пользователя в соответствии со значением переменной retpath.
Например, если проект вызвал паспорт для авторизации пользоваетеля с ошибочной парой логин-пароль, то паспорт выдаст соответствующее сообщение и предложит пользователю ввести логин и парол ещё раз или перейти в режим 'вспомнить пароль'. Если пользователь выберет режим вспомимнания пароля, то паспорт проверит введённый почтовый адрес и, если адрес правильный, вышлет письмо с регистрационными данными. После чего предложит пользователю ввести только что полученные по почте логин и пароль. Ещё раз проверит, может ли пользователь авторизоваться с такой парой логин-пароль. Если да, то паспорт выставит новую сессию авторизованной работы и переадресует пользователя по адресу, изначально устновленному проектом при первом вызове паспорта для авторизации, так как сквозь все этапы паспорт проводит значение переменной retpath.
Для корректной передачи по HTTP и разбора значений адрес, устанавлеваемый в качестве значения переменной retpath должен быть закодирован (url encoded).Если значение переменной retpath передаётся внутри тела запроса, posted переменная, то браузер автоматически выполнит однократное кодирование. Если переменная передаётся в строке запроса, то о кодировании должен позаботится сервис, генерирующий строку запроса.
Когда могут возникнуть проблемы с кодированием? Возможны следующие ситуации:
encpath и установить её значение равным 'yes'. Этим Вы дадите понять паспорту, что на момент попадания данных к паспорту значение переменной retpath уже дважды закодировано. Паспорт проследит за тем, что перед переадресацией пользователя значение адреса было раскодировано необходимое число раз.Допустимое значение переменной retpath - это любой допустимый адрес с учётом сделанных выше замечаний.
ВНИМАНИЕ: ни в коем случае не устанавливайте cookie с именем retpath - проследить за поведением переадресации в таком случе практически невозможно!
Обратите также внимание на то, что не во всех режимах паспорт реагирует на переменную retpath. Подробнее смотрите в разделе
Режими функционирования.
retpathЗначение этой переменной равное 'yes' означает, что при попадании к паспорту значение переменной
retpath будет дважды закодированным (url encoded). Все остальные значения игнорируются.
Итерпритация значения этой переменной зависит от режима функционирования, установленного переменной
mode:
register значение переменной воспринимается, как служебное имя для входа в систему. При регистрации также значение этой переменной принимается в качестве имени почтового ящика для вновь зарегестрировавшегося пользователя.
rename значение переменной воспринимается как новое значение служебного имени или имён. Какие именно служебные имена будут установлены равными значению переменной login зависит от значения переменной
from и ввода пользователя в форме изменения имени.
loginform значение переменной подставляется в качестве значения по умолчанию в форму ввода логина и пароля.
auth значение переменной используется при авторизации пользователя.Допустимые значения - строка длиной не более 20 символов, состоящая из символов латинского алфавита, цифр и знака дефиса. Причём, не должно начинаться на цифру или заканчиваться дефисом.
Значение этой переменной воспринимается как пароль при авторизации и как новое значение пароля при регистрации или изменении регистрационных данных.
В качестве значения допустимы строки длиной не менее 4 символов, состоящие из букв латинского алфавита и цифр. В случае, когда переменная passwd содержит новое значение пароля, это значение должно совпадать со значением переменной
passwd2.
Ряд переменных используется только в режимах регистрации или изменения регистрационных данных. Некоторые переменные в режиме регистрации должны быть обязательно установлены. В противном случае паспорт выдаст соответствующее диагностическое сообщение и предложит пользователю ввести недостающие данные.
На выходе из режимов регистрации или авторизации паспорт устанавливает следующие переменные:
Session_id - сессия авторизованной работы. Значение этой переменной - генерируемый случайным образом дайджест, служащий для поддержания сессии авторизованной работы при переходе от одной страницы к другой.yandex_login - логин пользователя на Яндексеyandex_nick - nickname пользователя на Яндексеyandex_fio - фамилия, имя и отчество пользователяyandex_email - имя почтового ящика пользователя на ЯндексеVirtual_id - номер машины в кластере народа, если пользователь подписан на народПосле выхода из режима
logout значение переменной Session_id устанавливается равным 'deleted', а время уничитожения (expiration time) устанавливается на текущее.