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

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

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

22 ответов

208 просмотров

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

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 Автор вопроса
Eugene Zork
Извиняюсь, да OnAfterUserAuthorize и он onBeforeUs...

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

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

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

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

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

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

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта