пользователей? Т.е. отменить CSaleBasket::TransferBasket?
Сценарий какой?
Ну смысл примерно таков, что несколько пользователей могут ходить один за другим с одного компа/IP, пытаюсь перед авторизацией выцепить FUser_ID хранимый в куках/сессии для проверки принадлежности к пользователю который пытается залогинится, и если FUser принадлежит ему либо никому - то слияние должно проходить в штатном режиме, если нет - надо предотвращать слияние без нарушения данных в корзине другого пользователя. Примерно так
На событие в обработчик это цепляете? И когда разлогинивает? Сразу после удачной авторизации или какое-то время спустя?
На событие OnBeforeUserAuthorize, когда разлогинивает тоже думали - но юзер может же просто закрыть браузер и всё на этом, по этому приняли решение делать проверку перед непосредственной авторизацией
Крайний стабильный
Как варинат - обнулять SALE_USER_ID в сессии и BITRIX_SM_SALE_UID в куках
В sale 23.400.0 кука для неавторизованного больше не сохраняется.
А обработчик корректно дорабатывает? Есть вариант, что происходит ошибка и процедура авторизации не проходит до логичного завершения.
Этого можно было бы опасаться в OnBeforeUserLogin, но да, всё корректно
Т.е. начиная с этой версии можно не городить огород, которым я занимаюсь?)
ссылочку можно на описание события onBeforeUserAuthorize?
это событие вообще существует? я в доке не могу его найти. onAfterUserAuthorize вижу, а onBefore - нет (в рамках самообразования, вдруг мой вариант доки неполон или не по глазам)
Извиняюсь, да OnAfterUserAuthorize и он onBeforeUserLogin
Да, напутал, извиняюсь
понял, ок. нет проблем
не должно разлогинивать. только при наличии каких-то ошибок в обработчике. ну разве можете для тестового пользователя вывести лог из события OnAfterUserLogout. и проверить, что авторизация была и завершилась по каким-то причинам.
Так проблема то не в этом) А в том что юзер добавил чего-то в корзину, залогинился, пошарился и вышел. Потом пришёл другой, логинится - а корзина мержится с корзиной предыдущего пользователя
Понял, спасибо!)
Такой сценарий воспроизводился, только если первый не нажал "запомнить на сайте" при авторизации. Исправлено.
Обсуждают сегодня