208 похожих чатов

Добрый день! Подскажите, как предотвратить слияние корзины неавторизованного и авторизованного

пользователей? Т.е. отменить CSaleBasket::TransferBasket?

22 ответов

216 просмотров

Сценарий какой?

Eugene-Zork Автор вопроса
Eugene Zhukov
Сценарий какой?

Ну смысл примерно таков, что несколько пользователей могут ходить один за другим с одного компа/IP, пытаюсь перед авторизацией выцепить FUser_ID хранимый в куках/сессии для проверки принадлежности к пользователю который пытается залогинится, и если FUser принадлежит ему либо никому - то слияние должно проходить в штатном режиме, если нет - надо предотвращать слияние без нарушения данных в корзине другого пользователя. Примерно так

Eugene Zork
Ну смысл примерно таков, что несколько пользовател...

На событие в обработчик это цепляете? И когда разлогинивает? Сразу после удачной авторизации или какое-то время спустя?

Eugene-Zork Автор вопроса
Vitaly Tatarintsev
На событие в обработчик это цепляете? И когда разл...

На событие OnBeforeUserAuthorize, когда разлогинивает тоже думали - но юзер может же просто закрыть браузер и всё на этом, по этому приняли решение делать проверку перед непосредственной авторизацией

Eugene-Zork Автор вопроса
Eugene Zhukov
sale какой?

Крайний стабильный

Eugene-Zork Автор вопроса
Eugene Zhukov
sale какой?

Как варинат - обнулять SALE_USER_ID в сессии и BITRIX_SM_SALE_UID в куках

Eugene Zork
Крайний стабильный

В sale 23.400.0 кука для неавторизованного больше не сохраняется.

Eugene Zork
На событие OnBeforeUserAuthorize, когда разлогинив...

А обработчик корректно дорабатывает? Есть вариант, что происходит ошибка и процедура авторизации не проходит до логичного завершения.

Eugene-Zork Автор вопроса
Vitaly Tatarintsev
А обработчик корректно дорабатывает? Есть вариант,...

Этого можно было бы опасаться в OnBeforeUserLogin, но да, всё корректно

Eugene-Zork Автор вопроса
Eugene Zhukov
В sale 23.400.0 кука для неавторизованного больше ...

Т.е. начиная с этой версии можно не городить огород, которым я занимаюсь?)

Eugene Zork
Этого можно было бы опасаться в OnBeforeUserLogin,...

ссылочку можно на описание события onBeforeUserAuthorize?

Eugene Zork
Этого можно было бы опасаться в OnBeforeUserLogin,...

это событие вообще существует? я в доке не могу его найти. onAfterUserAuthorize вижу, а onBefore - нет (в рамках самообразования, вдруг мой вариант доки неполон или не по глазам)

Eugene-Zork Автор вопроса
Vitaly Tatarintsev
ссылочку можно на описание события onBeforeUserAut...

Извиняюсь, да OnAfterUserAuthorize и он onBeforeUserLogin

Eugene Zork
Извиняюсь, да OnAfterUserAuthorize и он onBeforeUs...

не должно разлогинивать. только при наличии каких-то ошибок в обработчике. ну разве можете для тестового пользователя вывести лог из события OnAfterUserLogout. и проверить, что авторизация была и завершилась по каким-то причинам.

Eugene-Zork Автор вопроса
Vitaly Tatarintsev
не должно разлогинивать. только при наличии каких-...

Так проблема то не в этом) А в том что юзер добавил чего-то в корзину, залогинился, пошарился и вышел. Потом пришёл другой, логинится - а корзина мержится с корзиной предыдущего пользователя

Eugene-Zork Автор вопроса
Eugene Zhukov
Да.

Понял, спасибо!)

Eugene Zork
Так проблема то не в этом) А в том что юзер добави...

Такой сценарий воспроизводился, только если первый не нажал "запомнить на сайте" при авторизации. Исправлено.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта