Приветствую всех.
Столкнулся с задачей: заказчик хотел, чтобы после оформления заказа в интернет-магазине и создании бюджета пользователя, авторизация пользователя сохранялась.
Немножко подробнее: любимая всеми компонента sale.order.ajax при создании заказа для неавторизованного пользователя заводит новый бюджет на основании данных о доставке. После создания заказа, пользователь-заказчик успешно авторизуется на сайте. Но по умолчанию он авторизуется и всё. А хотелось, чтобы при последующих посещениях даже не зная своего пароля пользователь всё равно сохранял авторизацию.
Обращение к документации дало лишь понятие о том, что нужно сохранять в куках хэш пароля, дабы оный затем проверялся. Писалось много, пока сознание не обратило внимание на параметры функции Authorize в классе USER.
Итак, функция
CUser::Authorize(
int user_id,
bool SaveAuth = false
)
Второй параметр есть ни что иное, как флаг сохранения авторизации. Необязательный. По умолчанию FALSE. В компоненте sale.order.ajax в строке 1232 ставим $USER->Authorize($arAuthResult,true);, и задача оказывается решенной.
Однако, опыт - наше всё.
Столкнулся с задачей: заказчик хотел, чтобы после оформления заказа в интернет-магазине и создании бюджета пользователя, авторизация пользователя сохранялась.
Немножко подробнее: любимая всеми компонента sale.order.ajax при создании заказа для неавторизованного пользователя заводит новый бюджет на основании данных о доставке. После создания заказа, пользователь-заказчик успешно авторизуется на сайте. Но по умолчанию он авторизуется и всё. А хотелось, чтобы при последующих посещениях даже не зная своего пароля пользователь всё равно сохранял авторизацию.
Обращение к документации дало лишь понятие о том, что нужно сохранять в куках хэш пароля, дабы оный затем проверялся. Писалось много, пока сознание не обратило внимание на параметры функции Authorize в классе USER.
Итак, функция
CUser::Authorize(
int user_id,
bool SaveAuth = false
)
Второй параметр есть ни что иное, как флаг сохранения авторизации. Необязательный. По умолчанию FALSE. В компоненте sale.order.ajax в строке 1232 ставим $USER->Authorize($arAuthResult,true);, и задача оказывается решенной.
Однако, опыт - наше всё.