one-soft Опубликовано 10 Ноября 2008 Жалоба Поделиться Опубликовано 10 Ноября 2008 Есть внешняя база. В поле email хранится email адрес пользователя.Что необходимо добавить в sources/loginauth/external/auth.php чтобы при первой авторизации не нужно было вписывать email адрес?Ответьте пожалуйста, очень нужно. Всем спасибо заранее. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
one-soft Опубликовано 11 Ноября 2008 Автор Жалоба Поделиться Опубликовано 11 Ноября 2008 Помогите пожалуйста, очень нужно Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
rgaraev Опубликовано 11 Ноября 2008 Жалоба Поделиться Опубликовано 11 Ноября 2008 т.е. при регистрации пользователи вводит имя и автоматом ему в анкету вставляется емаил с другой базы? можно сделать за счет аякса что бы по красивее, но имя пользователя должно совпадать с именем в той таблице где хранятся адреса Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
one-soft Опубликовано 11 Ноября 2008 Автор Жалоба Поделиться Опубликовано 11 Ноября 2008 как сделать чтобы IPB брала также и email адрес с моей базы и автоматом вписывала в свою, ведь только при первом посещении в БД появляется строка в таблице members с email'ом вида login@timestampПри авторизации IPB берет только логин и пасс с моей базы, а нужно чтобы брал также и сдруго поля, с поля "email" в моей базе. Как это реализовать?можно сделать за счет аяксаЭто ничего не меняет, как мне кажется,но расскажите поподробнее. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
rgaraev Опубликовано 11 Ноября 2008 Жалоба Поделиться Опубликовано 11 Ноября 2008 как сделать чтобы IPB брала также и email адрес с моей базы и автоматом вписывала в свою, ведь только при первом посещении в БД появляется строка в таблице members с email'ом вида login@timestampПри авторизации IPB берет только логин и пасс с моей базы, а нужно чтобы брал также и сдруго поля, с поля "email" в моей базе. Как это реализовать?можно сделать за счет аяксаЭто ничего не меняет, как мне кажется,но расскажите поподробнее. я не так понял, аякс тут не нужен Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
one-soft Опубликовано 11 Ноября 2008 Автор Жалоба Поделиться Опубликовано 11 Ноября 2008 Неужели на этом форуме никто не знает ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
one-soft Опубликовано 11 Ноября 2008 Автор Жалоба Поделиться Опубликовано 11 Ноября 2008 Скажите кто-нибудь! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Ноября 2008 Жалоба Поделиться Опубликовано 11 Ноября 2008 Предыдущее предупреждение так и не дало вам повода прочитать правила? Не нужно относиться к предупреждениям как к угнетению вас мной, однако и забывать о правилах не стоит. Честно говоря, нет желания отвечать вам, учитывая что в предыдущей теме вы не опубликовали решение. Внешняя авторизация не настолько широко используется, чтобы можно было с ходу дать ответ. Насколько я понял после поверхностного обзора файлов для внешней авторизации, для этого нужно, чтобы в функцию _create_local_member поступал e-mail из внешней базы. Туда он должен попадать из параметров функции create_local_member, которая вызывается в том числе в следующем фрагменте модуля внешней авторизации: if ( $this->allow_create ) { $this->create_local_member( $username, $password ); } else { $this->return_code = 'NO_USER'; return; }Исправить это можно, скорее всего, таким образом: $this->create_local_member( $username, $password, $remote_member['имя_поля_с_email'] ); Для тех кто видит, есть ещё тема с багами авторизации. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
one-soft Опубликовано 11 Ноября 2008 Автор Жалоба Поделиться Опубликовано 11 Ноября 2008 Честно говоря, нет желания отвечать вам, учитывая что в предыдущей теме вы не опубликовали решение.Я уже опубликовал решение в предыдущей теме.Внешняя авторизация не настолько широко используется, чтобы можно было с ходу дать ответ.Извините что столько сообщений оставил. Просто видел, что в другие темы поступает столько ответов, а в эту - нет.Спасибо Вам большое за ответ, проверил, всё работает хорошо Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Ноября 2008 Жалоба Поделиться Опубликовано 11 Ноября 2008 Просто видел, что в другие темы поступает столько ответов, а в эту - нет.Я человек непостоянный, а ответы там в основном такие, которые можно сказать по опыту, а здесь нужно залезать в файлы и вспоминать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Me_and_My Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 Здравствуйте, помогите пожалуйста. Проблема заключается в следующем: Нужно авторизировать IPB3 через базу битрикса (в принципе проблемы 7 версией битрикса не замечено) На текущий момент ясно что "проблема" в формировании хеша, если взять к примеру 7 версию битикса то хеш там состоял из 32 символов... а в восьмерке из 40, ну судя по всему разработчики изменили метод формирования, и следовательно теперь чет дописывается к этим 32 символам. Причем если например взять и просто вставить вот такую связку из семерки в базу восьмерки: bitrix3 e10adc3949ba59abbe56e057f20f883e (собственно логин и пароль в хеше 123456) Так вот если это вставить в таблицу b_user то IPB3/2 с легкостью авторизируются... А в восьмерке уже 40 символьный хеш. bitrix5 VQEwJrvB9e51341c235c5590a302edbedc67e9f9 (соответственно логин и опять же пароль в хеше 123456) Собстно уже IPB скажет что нифига не найден такой пользователь. Так вот вопрос к знатокам - ... чего сделать то чтобы он брал только 32 символа из значения а не все? В битриксе вот что нашелif(strlen($arUser["PASSWORD"]) > 32) { $salt = substr($arUser["PASSWORD"], 0, strlen($arUser["PASSWORD"]) - 32); $db_password = substr($arUser["PASSWORD"], -32); } else { $salt = ""; $db_password = $arUser["PASSWORD"]; } if($arParams["PASSWORD_ORIGINAL"] == "Y") $user_password = md5($salt.$arParams["PASSWORD"]); else $user_password = $arParams["PASSWORD"]; Тоесть тут как я понимаю если больше 32 то отсекается остальное... Как сделать чтобы отсекалось и в IPB3?Очень нужно, заранее спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 (изменено) Эмм.. В IPB 2 и 3 пароли хранятся как md5(md5($salt).md5($pass))В Битриксе, судя по приведенному коду, как md5($salt.$pass). Разница большая. Далее, насколько я понимаю, до 32 символов принудительно укорачивается сам пароль, а не его хеш. От хеша ничего отсекать не надо определению. Вообще, наверняка в IPB 3.0 есть такая же возможность внешней авторизации, как и в 2.3. Создается отдельный файл с настройками, вручную прописываются необходимые функции и т.д. Потом в админке включается как "основной метод авторизации". Всё непросто) Изменено 9 Августа 2009 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Me_and_My Опубликовано 10 Августа 2009 Жалоба Поделиться Опубликовано 10 Августа 2009 WildRAID, спасибо за ответ.Посмотри пожалуйста, вот файлик от битры... может ты поймешь. http://letitbit.net/download/3220.3425f055...5/user.rar.html Пробывал вот так не хочет $check_pass = $password;$salt = substr($remote_member[ REMOTE_FIELD_PASS ], 0, strlen($remote_member[ REMOTE_FIELD_PASS ]) - 32); switch( REMOTE_PASSWORD_SCHEME ){case 'md5':$check_pass = md5($salt.$password);break;} if ( $check_pass == $remote_member[ REMOTE_FIELD_PASS ] ){return true;}else{return false;}} И если вот так тоже не хочет $salt = substr($remote_member[ REMOTE_FIELD_PASS ], 32, 40); И так md5(md5($salt).md5($pass)) тоже Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ph-A Опубликовано 12 Августа 2009 Жалоба Поделиться Опубликовано 12 Августа 2009 (изменено) Нужно авторизировать IPB3 через базу битриксаНе советую, через API надежнее. Битрикс только на моей памяти, менял форматы хранение кэша паролей и два раза менял формирование соли. ИМХО, но сконвертировать пользователей базы во внешнию базу с сохранением пароля стало нереально. Проще запрашивать кэш через функции битрикса (GetPasswordHash). Напрямую в базу лезть не советую, после очередного обновления ... Изменено 12 Августа 2009 пользователем P(A) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
dodgeviperr Опубликовано 26 Августа 2010 Жалоба Поделиться Опубликовано 26 Августа 2010 Да кто подскажет как в IPB 3 сделать чтобы при первой авторизации не нужно было вписывать подтверждать email адрес? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
frazer Опубликовано 20 Февраля 2014 Жалоба Поделиться Опубликовано 20 Февраля 2014 Всем привет! С IP Board столкнулся впервые. И так, хотел связать авторизацию с Simpla, тут используется хеширование паролей md5($this->salt.$password.md5($password)); в auth.php добавил case 'salt': $salt = '23562346263125634163462356341634'; $check_pass = md5($salt.$password.md5($password)); break; и в acp.php array( 'title' => 'Способ хеширования пароля в удаленной базе', 'description' => "Если вы не нашли метод нужный вам, необходимо будет изменить реализацию хеширования пароля на свою в auth.php" , 'key' => 'REMOTE_PASSWORD_SCHEME', 'type'=> 'select', 'options'=> array( array( 'md5', 'MD5' ), array( 'salt', 'SALT' ), array( 'sha1', 'SHA1' ), array( 'none', 'Открытый текст' ) ) В админке в "Внешняя база данных" выбрал способ хеширования SALT, но при авторизации все равно пишет неверный логин или пароль. Что неправильно сделал не могу понять. Подскажите пожалуйста. Спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
MrLite Опубликовано 20 Февраля 2014 Жалоба Поделиться Опубликовано 20 Февраля 2014 А почему соль задана конкретная? Разве она не рандомная для каждого пользователя, и разве ее не нужно читать из удаленной базы? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
frazer Опубликовано 20 Февраля 2014 Жалоба Поделиться Опубликовано 20 Февраля 2014 в Simpla она прописана именно так Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 20 Февраля 2014 Жалоба Поделиться Опубликовано 20 Февраля 2014 чтобы понять выводи пошагово дебаг Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Denis Chursinov Опубликовано 20 Февраля 2014 Жалоба Поделиться Опубликовано 20 Февраля 2014 А внешняя авторизация поставлена первой в списке модулей? Ну и после$check_pass = md5($salt.$password.md5($password));Добавитьecho $check_pass; exit();и сверить самому с паролем в базе. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
frazer Опубликовано 21 Февраля 2014 Жалоба Поделиться Опубликовано 21 Февраля 2014 А внешняя авторизация поставлена первой в списке модулей?Ну и после $check_pass = md5($salt.$password.md5($password));Добавить echo $check_pass; exit();и сверить самому с паролем в базе. Первой, и даже выключал стандартную авторизацию echo $check_pass; ничего не выводит( Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Denis Chursinov Опубликовано 21 Февраля 2014 Жалоба Поделиться Опубликовано 21 Февраля 2014 Ну может в файл совать тогда file_put_contents( ПУТЬ К ФАЙЛУ В КОТОРЫЙ МОЖНО ПИСАТЬ, "\npass:".$check_pass , FILE_APPEND); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 21 Февраля 2014 Жалоба Поделиться Опубликовано 21 Февраля 2014 ничего не выводит - белый экран? или какая-то часть форума?(ну как так эхо не выводит? значит не доходит до туда исполнение)echo $check_pass;print "cp=".$check_pass;православно Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Denis Chursinov Опубликовано 21 Февраля 2014 Жалоба Поделиться Опубликовано 21 Февраля 2014 print "cp=".$check_pass; православноПравославно будет var_dump или print_r тогда уж. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
frazer Опубликовано 21 Февраля 2014 Жалоба Поделиться Опубликовано 21 Февраля 2014 ничего не выводит - белый экран? или какая-то часть форума?(ну как так эхо не выводит? значит не доходит до туда исполнение)echo $check_pass;print "cp=".$check_pass;православно Точно не доходит до пароля( Попробовал в настройках изменить название поля email на неправильное, выдал ошибку что нет такого поля. Изменил на неправильное поле с паролем, тут даже не ругнулся на существование поля. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.