Jump to content

Авторизация через социальные сети


Recommended Posts

надо бы доработать эту функциональность. если заходить сразных соцсетей то создается новый профиль. надо создать таблицу с соцсетями пользователя и по ним искать соответствие.

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

С радостью оценю ваши труды ;)

Link to post
Share on other sites
  • Replies 124
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

>я имел ввиду от платного решения предложенного корсом чем отличается? >Ну я демо платной версии не видел и не щупал, я не думаю что есть отличия в функционале. Что из моей писанины Вы не поняли

header('Location: '.$this->config->root_url);

Posted Images

Ребята вообще не встал плагин.

Я новенький в програмирование, SEO- понимаю, HTML тоже но PHP - нет ((

 

Можете выслать полную инструкцию как правильно поставить?

сайт mascase.com вроде все поставил как вы написали но нечего не поменялось

Link to post
Share on other sites

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

С радостью оценю ваши труды ;)

 

необходимо добавить таблицу сетей для пользователей. и если во всех соцсетях у пользователя один и тот же email то это блее чем реально а главное корректнее потому как я могу залогинеться как по логину паролю так и с любой соцсети и попасть в единый профиль.

Link to post
Share on other sites

необходимо добавить таблицу сетей для пользователей. и если во всех соцсетях у пользователя один и тот же email то это блее чем реально а главное корректнее потому как я могу залогинеться как по логину паролю так и с любой соцсети и попасть в единый профиль.

Это будет работать ТОЛЬКО если одинаковый e-mail.
Link to post
Share on other sites
  • 1 month later...

Работает, но есть два косяка: первый - номер телефона, несмотря на добавленную строчку в файл LoginView.php в админку так и не выводится. Второй - удаленный единожды покупатель больше через Вконтакт зарегестрироваться не может. 

 

Как исправить эти два момента??

Link to post
Share on other sites
  • 1 month later...

Выбивает ошибка Parse error: syntax error, unexpected T_ELSEIF in /var/www/xmvvrzkr/data/www/********/view/LoginView.php on line 65 как быть? (((

Вы неправильно вставили код. Если переводить на русский, то ошибка о том, что альтернатива условия ELSE не связана с самим условием. Т.е. должна получиться конструкция вида 

if(условие){...}

elseif(условие2){...}

else{...}

Link to post
Share on other sites
  • 4 weeks later...
  • 2 weeks later...

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

Также есть платное решение кому нужно.

 

Что это дает?

- Автоматический вход клиента без регистрации в интернет-магазин

- Автоматическая регистрация покупателя который зашел через соц. сеть

- Сбор потенциальных покупателей на лету

 

И так приступим.

В шаблон index.tpl в нужном Вам месте вставим следующий код:



<!-- Ulogin -->
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=small;fields=first_name,last_name,email,phone,city;providers=vkontakte,facebook,odnoklassniki,mailru;hidden=other;redirect_uri=http://ваш-сайт.ru/user/login"></div>
<!-- end -->

 

 

В фале view/LoginView.php после 64-й строки вставим следующий код:



// Вход через ULogin
elseif(isset($_POST['token']))
{
$s = file_get_contents('http://ulogin.ru/token.php?token='.$_POST['token'].'&host='.$_SERVER['HTTP_HOST']);
$simpla = json_decode($s, true);

if (isset($simpla['identity'])) {
$name = $simpla['first_name'].' '.$simpla['last_name'];
$email = $simpla['email'];
$phone = $simpla['phone'];
$city = $simpla['city'];
$password = md5($simpla['identity'].'Noxter');

//проверяем есть ли в БД такой e-mail
$this->db->query('SELECT count(*) as count, id FROM __users WHERE email=?', $email);
$user_exists = $this->db->result();

if($user_id = $this->users->check_password($email, $password))
{
$user = $this->users->get_user($email);
if($user->enabled)
{
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
else
{
$this->design->assign('error', 'user_disabled');
}
}
elseif($user_exists->count)
{
$_SESSION['user_id'] = $user_exists->id;
header('Location: '.$this->config->root_url);
}
else
{
$user_id = $this->users->add_user(
array('name'=>$name,
'email'=>$email,
'password'=>$password,
'enabled'=>1)
);
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
}
}

 

Вроде бы все.

Проверяем отписываемся

Все рабтает спс

Link to post
Share on other sites
  • 3 weeks later...

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

Также есть платное решение кому нужно.

 

Что это дает?

- Автоматический вход клиента без регистрации в интернет-магазин

- Автоматическая регистрация покупателя который зашел через соц. сеть

- Сбор потенциальных покупателей на лету

 

И так приступим.

В шаблон index.tpl в нужном Вам месте вставим следующий код:



<!-- Ulogin -->
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=small;fields=first_name,last_name,email,phone,city;providers=vkontakte,facebook,odnoklassniki,mailru;hidden=other;redirect_uri=http://ваш-сайт.ru/user/login"></div>
<!-- end -->

 

 

В фале view/LoginView.php после 64-й строки вставим следующий код:



// Вход через ULogin
elseif(isset($_POST['token']))
{
$s = file_get_contents('http://ulogin.ru/token.php?token='.$_POST['token'].'&host='.$_SERVER['HTTP_HOST']);
$simpla = json_decode($s, true);

if (isset($simpla['identity'])) {
$name = $simpla['first_name'].' '.$simpla['last_name'];
$email = $simpla['email'];
$phone = $simpla['phone'];
$city = $simpla['city'];
$password = md5($simpla['identity'].'Noxter');

//проверяем есть ли в БД такой e-mail
$this->db->query('SELECT count(*) as count, id FROM __users WHERE email=?', $email);
$user_exists = $this->db->result();

if($user_id = $this->users->check_password($email, $password))
{
$user = $this->users->get_user($email);
if($user->enabled)
{
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
else
{
$this->design->assign('error', 'user_disabled');
}
}
elseif($user_exists->count)
{
$_SESSION['user_id'] = $user_exists->id;
header('Location: '.$this->config->root_url);
}
else
{
$user_id = $this->users->add_user(
array('name'=>$name,
'email'=>$email,
'password'=>$password,
'enabled'=>1)
);
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
}
}

 

Вроде бы все.

Проверяем отписываемся.

Ошибка Parse error: syntax error, unexpected T_ELSEIF in /home/........../public_html/view/LoginView.php on line 65

Link to post
Share on other sites
  • 4 months later...

что и требовалось доказать от ukrLogin  :D Юля перед тем как хвалить узнай кому ты даешь данные , кто это посредник и для чего он нужен и кем он создан.

Link to post
Share on other sites
  • 1 year later...

А как сделать чтобы после ulogin-авторизации не перекидывать пользователя на главную страницу, а оставлять там где он есть?

 

 

header('Location: '.$this->config->root_url);

 

Это стандартно так в плагине, сбрасывает на главную, а как все-таки оставить пользователя на текущей странице? Например если он в корзине.

Link to post
Share on other sites
  • 3 months later...

Прошу подсказать, при автоматической регистрации через ВКОНТАКТЕ возможно ли сразу предоставлять клиенту скидку при покупке?

Да можно.
Link to post
Share on other sites
  • 3 weeks later...
http://ulogin.ru/js/ulogin.js
 

Скрипт собирает статистику использования и загрузка его post запроса занимает от 20 до 30 секунд. Если на сайте стоит прелоадер, для пользователя это превращается в сайт, который каждую страницу грузит по 20-30 секунд.

Link to post
Share on other sites

 

 

http://ulogin.ru/js/ulogin.js
 
Скрипт собирает статистику использования и загрузка его post запроса занимает от 20 до 30 секунд. Если на сайте стоит прелоадер, для пользователя это превращается в сайт, который каждую страницу грузит по 20-30 секунд.

 

 

Чушь
Link to post
Share on other sites

Подскажите как сделать чтобы при регистрации через соц сеть отправлялось письмо о регистрации  на почту, где указан логин и пароль для входа? Уже стоит вот такая доработка http://forum.simplacms.ru/topic/9928-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/ , которая отправляет письмо о регистрации, если человек оформил заказ без регистрации.

Link to post
Share on other sites

 

Подскажите как сделать чтобы при регистрации через соц сеть отправлялось письмо о регистрации на почту, где указан логин и пароль для входа? Уже стоит вот такая доработка http://forum.simplacms.ru/topic/9928-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/ , которая отправляет письмо о регистрации, если человек оформил заказ без регистрации.

По аналогии с моим дополнением.

Link to post
Share on other sites

По аналогии с моим дополнением.

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

Link to post
Share on other sites

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

В таком случае обратитесь за помощью к специалисту.
Link to post
Share on other sites
  • 2 months later...

Не знаю с чем связанно но в последнее время появилась такая ошибка через вход соц сети. 

Notice: Undefined index: city in /home/p157758/www/smoke-time.com/view/LoginView.php on line 76

Warning: Cannot modify header information - headers already sent by (output started at /home/p157758/www/smoke-time.com/view/LoginView.php:76) in /home/p157758/www/smoke-time.com/view/LoginView.php on line 99

Warning: Cannot modify header information - headers already sent by (output started at /home/p157758/www/smoke-time.com/view/LoginView.php:76) in /home/p157758/www/smoke-time.com/index.php on line 42

В 76 месте 

$city = $simpla['city'];

99 

header('Location: '.$this->config->root_url);

в индех

	header("Content-type: text/html; charset=UTF-8");	

Все указывает на проблемы с локацией. Как подправить ?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...