@Kirill-Gorelov
С ума с IT

Битрикс, проверка сохраненной авторизации не пройдена?

Парни, проблема.
Пишем апи на битрикс для мобильного приложения(МП). И нужно, чтобы пользователь мог авторизовываться и регистрироваться через мп. И регистрация так же должна идти через соц сети.
Для того, что бы пользователь мог авторизоваться, мы отдаем ему токен вида:(id_user:hach_password). И для пользователя, который регистрируется через соц сети, указываем через какую сеть он авторизовался.(вк или фб), в битриксе есть стандартная переменная EXTERNAL_AUTH_ID.
После того как прошла регистрация, он получает свой токен и с ним хочет авторизоваться. И в этот момент, в момент авторизации выскакивает ошибка от битрикс. "Проверка сохраненной авторзации не пройдена". И все, тут у нас затык((
Если пользователь логиниться через почту, все у него работает.
ТОкен генерируем таким образом. $ID_USER . ':' . $USER->GetSessionHash();
Проверяем пользователя на авторизацию таким образом:$USER->LoginByHash($ID_LOGIN, $hash);

Соответственно все расставив на свои места. Пользователя находит, но не авторизовывает.
Уже проверили все исходники, все увы.
Смотрели эти функции более детально, что бы понятно на каком этапе у нас проблема, но все равно не очень понятно, что не так.
bxapi.ru/src/?module_id=main&name=CUser%3A%3AAuthorize
bxapi.ru/src/?module_id=main&name=CUser::UpdateSes...
bxapi.ru/src/?module_id=main&name=CUser%3A%3ALogin...
bxapi.ru/src/?module_id=main&name=CUser%3A%3ACheck...

Я понимаю, что без кода будет сложно, но все, может кто сталкивался с подобной ситуаций, буду рад любому совету)
  • Вопрос задан
  • 1669 просмотров
Решения вопроса 1
@Kirill-Gorelov Автор вопроса
С ума с IT
Если вдруг кому-то потом пригодиться.
Вопрос решился.
Как я и писал, это ошибка возникала для пользователей из социальных сетей.
Дело в том, что сессия авторизация пользователей храниться в БД. А для пользователей из соц сетей, это не сохранялось, это так настроено битриксом. Мы просто отключили проверку на пользователя из соц сети.
Это делается в классе Cuser. Метод точно не помню. Но нужно смотреть методы
loginbyhash и authorize
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы