• Главная
  • Поиск
    •  
  • Здравствуйте, Гость

Автор Тема: Авторизация через соцсети Ulogin  (Прочитано 18456 раз)
Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« : 17 Декабрь 2014, 21:56:52 »

Авторизация через соцсети на доске объявлений Osclass.
В корень сайта кидаете файл  sn_login.php.
Конфигурацию файла в первых строчках редактируете под свою базу данных.
Дальше в базу данных добавляете два поля в таблицу oc_t_user.
Поля sn_str и sn_pass
оба varchar 255
На примере шаблона модерн, в header.php  код:
<li class="first">
                        <a id="login_open" href="<?php echo osc_user_login_url(); ?>"><?php _e('Login''modern'); ?></a>
                        <?php if(osc_user_registration_enabled()) { ?>
                            &middot;
                            <a href="<?php echo osc_register_account_url(); ?>"><?php _e('Register for a free account''modern'); ?></a>
                        <?php }; ?>
                        <form id="login" action="<?php echo osc_base_url(true); ?>" method="post">
                            <fieldset>
                                <input type="hidden" name="page" value="login" />
                                <input type="hidden" name="action" value="login_post" />
                                <label for="email"><?php _e('E-mail''modern'); ?></label><br/>
                                <?php UserForm::email_login_text(); ?><br/>
                                <label for="password"><?php _e('Password''modern'); ?></label><br/>
                                <?php UserForm::password_login_text(); ?>
                                <p class="checkbox"><?php UserForm::rememberme_login_checkbox();?> <label for="remember"><?php _e('Remember me''modern'); ?></label></p>
                                <button type="submit"><?php _e('Log in''modern'); ?></button>
                                <div class="forgot">
                                    <a href="<?php echo osc_recover_user_password_url(); ?>"><?php _e("Forgot password?"'modern');?></a>
                                </div>
                            </fieldset>
                        </form>
                    </li>

Заменяете на код:
<li class="first">
<a id="login_open" href="<?php echo osc_user_login_url(); ?>"><?php _e('Login''modern'); ?></a>
<?php if(osc_user_registration_enabled()) { ?>
                            &middot;
<a href="<?php echo osc_register_account_url(); ?>"><?php _e('Register for a free account''modern'); ?></a>
<?php }; ?>
<br/>
<?php echo '<p style="color: #FFF;display: block;margin: 3px 0 3px 0;background: #0399D4;padding: 2px;text-align: center;">Войти с помощью социальных сетей</p>';?>
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=panel;fields=first_name,email;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=twitter,google,yandex,livejournal,openid;redirect_uri=http://site.ru/sn_login.php">
</div>
<form id="login" name="login_post_form" action="<?php echo osc_base_url(true); ?>" method="post">
<fieldset>
<input type="hidden" name="page" value="login" />
<input type="hidden" name="action" value="login_post" />                       
<label for="email"><?php _e('E-mail''modern'); ?></label><br/>
<input id="email" type="text" name="email" value="<?php echo $_POST ["post_em"]; ?>" /><br/>
<label for="password"><?php _e('Password''modern'); ?></label><br/>
<input id="password" type="password" name="password" value="<?php echo $_POST ["post_pass"]; ?>" />
<?php
if ($_POST ["post_em"]) echo '<script type="text/javascript">document.login_post_form.submit();</script>';
?>

<p class="checkbox"><?php UserForm::rememberme_login_checkbox();?> <label for="rememberMe"><?php _e('Remember me''modern') ; ?></label></p>
<button type="submit"><?php _e('Log in''modern') ; ?></button>
<div class="forgot">
<a href="<?php echo osc_recover_user_password_url() ; ?>"><?php _e("Forgot password?"'modern');?></a>
</div>
</fieldset>
</form>
</li>
В данном коде не забудьте заменить http://site.ru/ на адрес Вашего сайта.
« Последнее редактирование: 04 Январь 2018, 20:31:13 от Dis »
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 2
« Ответ #1 : 02 Март 2015, 10:24:17 »
Если честно не совсем работает. Т.е. сами пользователи в базе появляются, но авторизация на сайте не происходит.
Могли бы подсказать в чем проблема?

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #2 : 02 Март 2015, 13:11:17 »
Если честно не совсем работает. Т.е. сами пользователи в базе появляются, но авторизация на сайте не происходит.
Могли бы подсказать в чем проблема?
Давно не пользовался Ulogin на своих досках. Но я помню писали про проблему такую. Возникала она, если сайт не зарегистрирован в Ulogin.
Попробуйте зарегистрироваться у них в сервисе и внесите в кабинете свой сайт.
Если не поможет, напишите. Попробую разобраться в чём проблема.
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 2
« Ответ #3 : 04 Март 2015, 05:12:18 »
Сайт зарегистрирован в ulogin. Вероятно проблема кроется в том что сайт расположен на домене 3го уровня.

  • *
  • Сообщений: 1
« Ответ #4 : 02 Август 2015, 10:32:12 »
Ребята, все хорошо, но не все ж есть ПХПисты-профи. У меня полдня ушло, чтоб найти ошибку в коде, после чего авторизация заработала. И дело вовсе не в Ulogin.
Просто строчки типа
<input id="email" type="text" name="email" value="<? echo $_POST ["post_em"]; ?>" /><br/>надо исправить на
<input id="email" type="text" name="email" value="<?php echo $_POST ["post_em"]; ?>" /><br/>Разницу ощущаете?
И из-за этого php, все и не работает.

И да, пожалуйста.  :D
« Последнее редактирование: 02 Август 2015, 10:34:01 от Yuriy_Y »

  • *
  • Сообщений: 29
« Ответ #5 : 18 Январь 2016, 00:26:39 »
DIS вставил код в шаблон FINO <script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin"
data-ulogin="display=panel;fields=first_name,email;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=twitter,google,yandex,livejournal,openid;redirect_uri=http://boxdoska.net.ua/sn_login.php">
</div>
<form id="login" name="login_post_form" action="<?php echo 
osc_base_url(true); ?>
" method="post">
<fieldset>
<input type="hidden" name="page" value="login" />
<input type="hidden" name="action" value="login_post" />
<input id="email" type="text" name="email" value="<?php echo $_POST 
["post_em"]; ?>
" /><br/>
<input id="password" type="password" name="password" value="<?php echo 
$_POST ["post_pass"]; ?>
" />
<?php
if ($_POST ["post_em"]) echo '<script 
type="text/javascript">document.login_post_form.submit();</script>'
;
?>
и от такая проблема скрин во вложении
как можно решить???

  • *
  • Сообщений: 29
« Ответ #6 : 18 Январь 2016, 01:33:15 »
(Вы обязаны подтвердить Ваш E-Mail. Иначе регистрация не возможна)
и как ету проблему решить

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #7 : 18 Январь 2016, 18:53:28 »
и от такая проблема скрин во вложении
как можно решить???
Во первых форма не закрыта, в конце нужно добавить
</fieldset>
</form>
А в общем нужно посмотреть всё на шаблоне. Позже напишу как правильно код вставить.
Доработки любой сложности.
Задание присылайте в личку.

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #8 : 01 Февраль 2016, 04:41:32 »
1. Вариант 1 для Fino ( кнопки будут на всех страницах сайта) в header.php 60 строка после тега </nav> вставить например такой код:
<?php if( !osc_is_web_user_logged_in() ) { ?>
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div style="float:right;">
<div id="uLogin"  data-ulogin="display=panel;fields=first_name,email;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=twitter,google,yandex,livejournal,openid;redirect_uri=http://site.ru/sn_login.php">
</div></div>
<form style="display:none;" id="login" name="login_post_form" action="<?php echo osc_base_url(true); ?>" method="post">
<fieldset>
<input type="hidden" name="page" value="login" />
<input type="hidden" name="action" value="login_post" />                       
<label for="email"><?php _e('E-mail''fino'); ?></label><br/>
<input id="email" type="text" name="email" value="<?php echo $_POST ["post_em"]; ?>" /><br/>
<label for="password"><?php _e('Password''fino'); ?></label><br/>
<input id="password" type="password" name="password" value="<?php echo $_POST ["post_pass"]; ?>" />
<?php if ($_POST ["post_em"]) echo '<script type="text/javascript">document.login_post_form.submit();</script>';?>
</form>
<?php ?> 
site.ru в коде заменить на адрес своего сайта.

2. Вариант 2 - кнопки авторизации через соцсети будут только на страницах авторизации и регистрации.
  В header.php 60 строка после тега </nav> добавить код:
<?php if( !osc_is_web_user_logged_in() ) { ?>
<form style="display:none;" id="login" name="login_post_form" action="<?php echo osc_base_url(true); ?>" method="post">
<fieldset>
<input type="hidden" name="page" value="login" />
<input type="hidden" name="action" value="login_post" />                       
<label for="email"><?php _e('E-mail''modern'); ?></label><br/>
<input id="email" type="text" name="email" value="<?php echo $_POST ["post_em"]; ?>" /><br/>
<label for="password"><?php _e('Password''modern'); ?></label><br/>
<input id="password" type="password" name="password" value="<?php echo $_POST ["post_pass"]; ?>" />
<?php if ($_POST ["post_em"]) echo '<script type="text/javascript">document.login_post_form.submit();</script>';?>
</form>
<?php ?> 
Файл user-login.php строки 38-50
<form action="<?php echo osc_base_url(true); ?>" method="post">
                    <input type="hidden" name="page" value="login" />
                    <input type="hidden" name="action" value="login_post" />
                    <fieldset>
                     <input class="contact-inpt gen-title" type="text" name="email" id="email" placeholder="<?php _e('E-mail''fino'); ?>">
<input class="contact-inpt gen-title" type="password" name="password" id="password" placeholder="<?php _e('Password''fino'); ?>">
<p class="check"><?php UserForm::rememberme_login_checkbox();?> <label for="remember"><?php _e('Remember me''fino'); ?></label></p>
                        <button type="submit" class="ui-button"><?php _e("Log in"'fino');?></button>
                        <div class="more-login">
                            <a href="<?php echo osc_register_account_url(); ?>"><?php _e("Register for a free account"'fino'); ?></a> · <a href="<?php echo osc_recover_user_password_url(); ?>"><?php _e("Forgot password?"'fino'); ?></a>
                        </div>
                    </fieldset>
                </form>
Меняем на следующий код:
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=panel;fields=first_name,email;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=twitter,google,yandex,livejournal,openid;redirect_uri=http://site.ru/sn_login.php">
</div>
                <form name="login_post_form" action="<?php echo osc_base_url(true); ?>" method="post">
                    <fieldset>
<input type="hidden" name="page" value="login" />
                    <input type="hidden" name="action" value="login_post" />
                     <input class="contact-inpt gen-title" type="text" name="email" id="email" value="<?php echo $_POST ["post_em"]; ?>" placeholder="<?php _e('E-mail''fino'); ?>">
<input class="contact-inpt gen-title" type="password" name="password" id="password" value="<?php echo $_POST ["post_pass"]; ?>" placeholder="<?php _e('Password''fino'); ?>">
<?php if ($_POST ["post_em"]) echo '<script type="text/javascript">document.login_post_form.submit();</script>';?>
<p class="check"><?php UserForm::rememberme_login_checkbox();?> <label for="remember"><?php _e('Remember me''fino'); ?></label></p>
                        <button type="submit" class="ui-button"><?php _e("Log in"'fino');?></button>
                        <div class="more-login">
                            <a href="<?php echo osc_register_account_url(); ?>"><?php _e("Register for a free account"'fino'); ?></a> · <a href="<?php echo osc_recover_user_password_url(); ?>"><?php _e("Forgot password?"'fino'); ?></a>
                        </div>
                    </fieldset>
                </form>
Файл user-register.php код с 41-57 строки:
<form name="register" id="register" action="<?php echo osc_base_url(true); ?>" method="post" >
                    <input type="hidden" name="page" value="register" />
                    <input type="hidden" name="action" value="register_post" />

                    <fieldset>
                        <label for="name"><?php _e('Name''fino'); ?></label> <?php UserForm::name_text(); ?><br />
                        <label for="password"><?php _e('Password''fino'); ?></label> <?php UserForm::password_text(); ?><br />
                        <label for="password"><?php _e('Re-type password''fino'); ?></label> <?php UserForm::check_password_text(); ?><br />
                        <p id="password-error" style="display:none;">
                            <?php _e('Passwords don\'t match''fino'); ?>.
                        </p>
                        <label for="email"><?php _e('E-mail''fino'); ?></label> <?php UserForm::email_text(); ?><br />
                        <?php osc_run_hook('user_register_form'); ?>
                        <?php osc_show_recaptcha('register'); ?>
                        <button type="submit" class="ui-button"><?php _e('Create''fino'); ?></button>
                    </fieldset>
                </form>
Меняем на код :
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=panel;fields=first_name,email;providers=vkontakte,odnoklassniki,mailru,facebook;hidden=twitter,google,yandex,livejournal,openid;redirect_uri=http://site.ru/sn_login.php">
</div>
                <form name="register" id="register" action="<?php echo osc_base_url(true); ?>" method="post" >
                    <input type="hidden" name="page" value="register" />
                    <input type="hidden" name="action" value="register_post" />

                    <fieldset>
                        <label for="name"><?php _e('Name''fino'); ?></label> <?php UserForm::name_text(); ?><br />
                        <label for="password"><?php _e('Password''fino'); ?></label>
<input id="s_password" name="s_password" value="<?php echo $_POST ["post_pass"]; ?>" autocomplete="off" type="password"><br />
                        <label for="password"><?php _e('Re-type password''fino'); ?></label>
<input id="s_password2" name="s_password2" value="<?php echo $_POST ["post_pass"]; ?>" autocomplete="off" type="password"><br />
                        <p id="password-error" style="display:none;">
                            <?php _e('Passwords don\'t match''fino'); ?>.
                        </p>
                        <label for="email"><?php _e('E-mail''fino'); ?></label>
<input id="s_email" name="s_email" value="<?php echo $_POST ["post_em"]; ?>" type="text"><br />
                        <?php osc_run_hook('user_register_form'); ?>
<?php if ($_POST ["post_em"]) echo '<script type="text/javascript">document.login_post_form.submit();</script>';?>
                        <?php osc_show_recaptcha('register'); ?>
                        <button type="submit" class="ui-button"><?php _e('Create''fino'); ?></button>
                    </fieldset>
                </form>
Не забывайте везде в коде заменить site.ru на адрес домен своего сайта.
« Последнее редактирование: 01 Февраль 2016, 05:18:13 от Dis »
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 29
« Ответ #9 : 02 Февраль 2016, 00:16:31 »
попробовал первый вариант
происходят редиректы
вертается обратно на главную страницу
и не авторизуется
проверьте файлы во вложении
заранее благодарен
« Последнее редактирование: 02 Февраль 2016, 04:48:53 от Dis »

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #10 : 02 Февраль 2016, 04:50:25 »
попробовал первый вариант
происходят редиректы
вертается обратно на главную страницу
и не авторизуется
проверьте файлы во вложении
заранее благодарен
Не нужно выкладывать на форуме файлы от платного шаблона. Вложение удалил.
Проверьте всё как следует. Инструкция абсолютно рабочая, сам тестировал - работает отлично.
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 2
« Ответ #11 : 02 Февраль 2016, 17:16:24 »
скажите плиз стоит ли вообще делать авторизацию через соцсети для fino или нет в общем сложении всех плюсов и минусов.
например на avito есть данная авторизация но в любом случае там запрашивается email, и какой тогда в этом толк создается только доп действие.
а так спасибо тем кто над шаблоном работал все просто шикарно вот что у меня пока получается qp33.ru , буду признателен получить советы и замечания
« Последнее редактирование: 02 Февраль 2016, 17:23:29 от Dis »

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #12 : 02 Февраль 2016, 17:34:05 »
скажите плиз стоит ли вообще делать авторизацию через соцсети для fino или нет в общем сложении всех плюсов и минусов.
например на avito есть данная авторизация но в любом случае там запрашивается email, и какой тогда в этом толк создается только доп действие.
а так спасибо тем кто над шаблоном работал все просто шикарно вот что у меня пока получается qp33.ru , буду признателен получить советы и замечания
По поводу запроса e-mail. Зависит от конкретной соцсети. Некоторые соцсети отдают эти данные и в данном случае ничего запрашиваться не будет дополнительно. А некоторые e-mail не отдают и тогда происходит дополнительный запрос.
В общем о авторизации через соцсети.
По поводу плюсов и минусов - информации достаточно в интернете.
Основной плюс - пользователю не нужно заполнять регистрационную форму. Регистрация проходит в два клика буквально.

Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 2
« Ответ #13 : 04 Февраль 2016, 14:13:00 »
создал 2 поля в бд, сделал все по первому примеру для fino,
при нажатии на кнопку открывается окно /sn_login.php, сайт в ulogin зарегил

далее ничего не происходит

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #14 : 04 Февраль 2016, 17:32:32 »
создал 2 поля в бд, сделал все по первому примеру для fino,
при нажатии на кнопку открывается окно /sn_login.php, сайт в ulogin зарегил

далее ничего не происходит
Проверьте данные для доступа к БД в файле sn_login.php
Доработки любой сложности.
Задание присылайте в личку.

 


test