Jump to content

хочу замутить модуль регистрации через соц сети


Recommended Posts

Приветствую!

 

вот пример "внятной" авторизации http://ruseller.com

 

Хочу добиться данного результата

 

что бы фотка тянулась из вконтакте при успешной авторизации и другие "фишки"

 

Я штурмовал интернет в поисках модуля авторизации для престы

видел кучу вариантов от банальных модулей, которые просто тянут инфу

и подставляют переменные в поля (регистрации), так и хайтек в виде логинзы и т.д.

 

Но все это как то не полноценно на мой взгляд.

 

Вот мои мысли:

 

берем код от вк

 

<!-- Put this script tag to the <head> of your page -->
<script type="text/javascript" src="//vk.com/js/api/openapi.js?101"></script>
 
<script type="text/javascript">
  VK.init({apiId: ВАШ АЙДИ});
</script>
 
<!-- Put this div tag to the place, where Auth block will be -->
<div id="vk_auth"></div>
<script type="text/javascript">
VK.Widgets.Auth("vk_auth", {width: "400px", authUrl: 'brandsstock'});
</script>
 
 
обертываем тегом {literal}
 
и тупо вставляем на пример в header.tpl своего шаблона.
 
Ого выглядит уже интересно - если ты "сидишь" вконтакте - то как минимум отобразиться сразу-с лету твоя аватарка - и кнопка "Войти через Вконтакте"
 
 
 
444.png
 
 
Далее если нажать войти - уже будет редирект (правда я полный лаймер и не понимаю что это и зачем но редирект нужно прописывать) в приложении в вк http://vk.com/dev/Auth
 
ну например (я так думаю) можно прописать такую ссылочку
 
 
 
после этого будет "шляпа" - дальше я не знаю как действовать.
редирект будет само собой - а через адресную строку будет передана инфа
примерно такого содержания:
 
 
 
 
 
 
Как я думаю эту инфу нужно собрать и обработать средством php:
 
нужен код: и нужно вникнуть куда его "залить"? Варианты есть? 
 
кстати вот код который я намутил он универсальный и рабочий 100%
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <title>Аутентификация через ВКонтакте</title>
</head>
<body>
    <?php


    $client_id = ''; // ID приложения
    $client_secret = ''; // Защищённый ключ
    $redirect_uri = ''; // Адрес сайта


    $url = 'http://oauth.vk.com/authorize';


    $params = array(
        'client_id'     => $client_id,
        'redirect_uri'  => $redirect_uri,
        'response_type' => 'code'
    );


    echo $link = '<p><a href="' . $url . '?' . urldecode(http_build_query($params)) . '">Аутентификация через ВКонтакте</a></p>';


if (isset($_GET['code'])) {
    $result = false;
    $params = array(
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'code' => $_GET['code'],
        'redirect_uri' => $redirect_uri
    );


    $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);


    if (isset($token['access_token'])) {
        $params = array(
            'uids'         => $token['user_id'],
            'fields'       => 'uid,first_name,last_name,screen_name,sex,bdate,photo_big',
            'access_token' => $token['access_token']
        );


        $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
        if (isset($userInfo['response'][0]['uid'])) {
            $userInfo = $userInfo['response'][0];
            $result = true;
        }
    }


    if ($result) {
        echo "Социальный ID пользователя: " . $userInfo['uid'] . '<br />';
        echo "Имя пользователя: " . $userInfo['first_name'] . '<br />';
        echo "Ссылка на профиль пользователя: " . $userInfo['screen_name'] . '<br />';
        echo "Пол пользователя: " . $userInfo['sex'] . '<br />';
        echo "День Рождения: " . $userInfo['bdate'] . '<br />';
        echo '<img src="' . $userInfo['photo_big'] . '" />'; echo "<br />";
    }
}
?>
</body>
</html>
 
как видно из кода: он снюхивается с опен айди вк получает масив данных > обрабатывает и выводит эхом.
 
 
Я уверен если бы я чуть больше шарил я бы замутил но с php знаком из уроков лекций что на ютьюбе смотрел. 
 
Давайте сделаем модуль - или инструкцию. :)
 
а дизайн дело десятое. По хорошему мечта замутить всплывающие окно по клику на кнопку "вход" а там предложить весь спектр авторизации от вконтакте до инстаграмма.
 
И еще какой смысл - от модуля который не регит по клику - а тупо тянет инфу в поля - это называется "выкуси мой милый пользователь" максимум я узнал твое имя и фамилию а дальше пиши ручками свой почтовый индекс и прочью лабудень.....  ВОТ В ЧЕМ ВОПРОС! нахера такие модули я готов заплатить 5000р за нормальный модуль а за 10 евро - говно-модуль мне не нужен. Вот и решил написать свои мысли, нужно по любому нужно этот вопрос решать - это самое важное регистрация в один клик
Edited by sors
Используйте кнопку code (see edit history)
Link to comment
Share on other sites

 мдаа...

сделал бэкап

вот сижу по фтп туда сюда файлы кидаю методом тыка  :blink:

 

нужны толковые УМЫ и скинуться на разработку - Я ПЕРВЫЙ ГОТОВ ФИНАНСИРОВАТЬ мне откровенна нужна помощь или буду полгода сидеть тупить

Link to comment
Share on other sites

Для начала подключите к своему скрипту движек

require(dirname(__FILE__).'/config/config.inc.php');
require(dirname(__FILE__).'/init.php');

Потом используйте класс User для добавления пользователя и заполнения его свойств. Свойства смотрите в классе https://github.com/PrestaShop/PrestaShop-1.4/blob/master/classes/Customer.php

$customer = new Customer();
$customer->firstname='...';
//... пароль, email и все остальное
$customer->save();

И авторизуйте его

global $cookie;
$cookie->id_customer = (int)($customer->id);
$cookie->email = $customer->email;
//...
$cookie->logged = 1;

Остается добавить реакцию на вход существующего пользователя.

  • Like 1
Link to comment
Share on other sites

Кому отдать предпочтение? у меня еще опаска такая я на престе 1.5.5.6 

 

по описаниям данных модулей они работают до 1.5.4 

я на юлогине не видел модуля, предпочтение падаает на логинзу, так как тестили на битриксе там логинза лучше работает и красивее реализовано, а юлогин проще. Сугубо мое мнение.

 

по поводу модуля обратитесь на сайте разработчика prestalab.ru

Edited by gabdr (see edit history)
Link to comment
Share on other sites

https://www.loginradius.com/loginradius-for-developers/loginRadius-cms#prestashop-module

Посмотрел демо - косяк полный

 

Через разные соц сети и аккаунты регистрировался результаты УДИВЛЯЛИ)

 

Во-первых - было ощущение, что скрипт на рандоме генерирует чушь в поля (имя, фамилия, почта)

Реально - не существующие значения.

 

Но попробовав почти все - я добился результата с facebook - модуль все же сумел подставить мои данные правильно.

Но сцукО почту выдумывает (я знаю что vk.com не отдает почту пользователя) а он мне ставит что то вроде: "[email protected]"

 

КОРОЧЕ ОДИН БОЛЬШОЙ ЖИРНЫЙ БАГ :angry:

 

 

и потом я столкнулся с проблемой с модулем Ulogin - проблема одинаковая с loginradius. (возможно и с другими модулями)

и возможно дело тут не в модулях и не в сервисах - а нужно править код в престе.

 

Дело вот в чем: после попытки войти например через вконтакт - я перехожу в майаккаунт и далее в майперснлинформэйшн

ок. Я вижу свое имя в поле имя - фамилию - в поле фамилия - ну и почту - которую сам вводил - в графе - почта. но иногда и сюрпризы бывают в почту попадают невероятные значения. (50 на 50)

 

На вкладке мой_магаз/identity

Все хорошо НО дополнительно можно выбрать пол - дату рождения - и тд. (мне может это и не нужно как и посетителю)

ну а вдруг... 

 

Но это и не важно ВАЖНО ТО ЧТО ЕСТЬ ТАКОЕ ПОЛЕ (прилагаю скриншот) у меня переводится это поле как:

"ТЕКУЩИЙ ПАРОЛЬ" и это самое не понятное для меня.

 

ниже есть графа "новый пароль" и "подтвердить пароль" - это замкнутый круг! Так как что бы сделать свой пароль

нужно ввести "ТЕКУЩИЙ ПАРОЛЬ" - а его не существует! что бы я не пробовал вводить или оставлять поле пустым или просто пытаться нажать "сохранить" - выпадает ошибка... это беда.

 

Далее у меня есть проблема - что модуль множит один аккаунт в базе данных по кол-ву (входов/выходов) - так понимаю не срабатывает сценарий - проверить существует ли уже id клиента. - надеюсь разработчик поможет решить проблему.

 

Да и в целом очень много ошибок :huh:

 

 

scr4.png

 

 

 

 

Ребята если есть мысли  как это все вылечить буду признателен - заранее Спасибо.

Link to comment
Share on other sites

КОРОЧЕ ОДИН БОЛЬШОЙ ЖИРНЫЙ БАГ 

Это не баг, это фича.

 

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

Link to comment
Share on other sites

  • 1 year later...

Мутить уже ничего не нужно. Я уже давно разработал модуль для PS14(возможна разработка под 1.5 и 1.6). Не использует сторонние сервисы(логинзу). Не использует запрос мыла, если пользователь зашел  с соц. сети, которая не выдает почту, то в его контакт в примечание записывается адрес его страницы в соц сетях. Если есть желающие купить или затестить обращайтесь на Computer68.ru. Жду предложений по цене.

Link to comment
Share on other sites

  • 2 weeks later...

Не использует сторонние сервисы(логинзу). Не использует запрос мыла, если пользователь зашел  с соц. сети, которая не выдает почту, то в его контакт в примечание записывается адрес его страницы в соц сетях.

 

А в поле для почты что идет в этом случае? Куда будут уходить уведомления и другая корреспонденция?

Link to comment
Share on other sites

×
×
  • Create New...