ну Вы напишите какие поля какой провайдер предоставляет и как они
называются (если это возможно) и я поправлю чтобы нормально работало

2015-04-08 15:05 GMT+06:00 Alexey Terekhov <deadl...@mail.ru>:

>  Спасибо за ответы!!!
>
> Получается так:
> 1. OAutch - в целом работает хорошо, однако желательно в будущем улучшить
> обработчик ошибок.
> internal error поменять, на что-нибудь более понятное.
>
> 2. Для "кривых" соц.сетей использовать внешний обработчик который вернет
> системе поля: login,email,fist_name,last_name.
> * было бы неплохо расширить список полей обрабатываемых от OAuth2 (тел для
> sms,дата рождения и т.п.)
>
> 3. Думаю для входа через OAutch 3.0.4 "сегодня" можно и нужно! прописать
> префиксы сети к login
> так как два одинаковых логин приведут к internal error.
> а поле email делать пустым, это должно решить вопрос с входом из соц.сетей
> но мы теряем связь с этими пользователями, нет возможности им написать на
> email.
> или попробовать добавить к email префикс - но такой адрес может не пройти
> валидацию и привести к новым ошибкам.
>
> ! в 3.0.2 пользователь может менять в профиле emal адрес на любой
> свободный.
>
> + думаю необходим flag в config разрешающий использовать одинаковые email
> для разных типов входов
> и идентифицировать их как разных пользователей в системе.
> сопоставлять при авторизации e-mail с типом входа.
> то есть, может быть N одинаковых e-mail для N разных типов входов - каждый
> тип входа + email уникальный аккаунт.
>
> + в последствии реализовать в профиле управление входами, объединение
> аккаунтов с различных входов.
>
> Ушел дописывать свой "костыль", думаю добавить вход через mail.ru.
> если кому-нибудь интересе вход, еще через что-нибудь кроме:
> yandex,google,facebook,vk.com,mail.ru - пишите.
> так как мне этих 5 систем хватит.
>
> По результату, думаю завтра, опишу свои настройки OAuth2 для "нормальных
> сетей" и входы/обработка/выводы костыля для "кривых"
> может кому-нибудь пригодится.
>
> ---
> С уважением, Алексей Терехов.
> +7 926 076 15 20
>
> Среда,  8 апреля 2015, 11:52 +06:00 от Maxim Solodovnik <
> solomax...@gmail.com>:
> >1) по поводу ошибки я думаю что вот это
> >https://issues.apache.org/jira/browse/OPENMEETINGS-1196 она
> >
> >2) логин с одним мылом и разными провайдерами - хороший вопрос, надо
> >подумать
> >
> >3) request_method может быть 0 == post и 1 == get. тут недоглядели, надо
> >было сохранять этот енум по именам
> >
> >4) доп поля, сейчас не достаются, но это можно, patches are welcome :)
> >
> >ну я так думаю что internal error надо починить к релизу 3.0.5 (будет
> через
> >неделю примерно) а остальное подумать и сделать к следующей версии
> >помощь в тестировании будет очень кстати :)
> >
> >2015-04-08 7:13 GMT+06:00 Alexey Terekhov < deadl...@mail.ru >:
> >
> >>  Доброй ночи.
> >>
> >> в OM 3.0.4
> >> google работает прописал ключи и в путь...
> >> yandex нужно изменить 'email_param_name' и 'login_param_name' с
> >> 'default_email' на 'login'. (так как в ответе от яндекса нет
> default_email).
> >>
> >> facebook, vk.com решил через "костыль". :)
> >>
> >> в admin/oauth2
> >> request_key_url=http://localhost/crutch.php
> >>
> >>
> request_token_attributes=code={$code}&client_id={$client_id}&client_secret={$client_secret}&redirect_uri={$redirect_uri}
> >> request_token_url=
> http://localhost/crutch.php?access_token={$access_token}
> >> OM обращается к моему скрипту php, скрипт
> >> на запрос 1 POST. возвращает access_token в JSON формате
> >> на запрос 2 GET. возвращает login,email,firs_name,last_name в JSON
> формате
> >>
> >> задача скрипта получить данные от соц. сетей и вернуть их в "нужном"
> >> формате в OpenMeeting.
> >>
> >> Думаю это важный BUG или ВОПРОС:
> >> по Русски:
> >> если я зарегистрировался через email + login + password, то попытка
> зайти
> >> через соц.сеть в которой указан мой email
> >> приведет к internat error!
> >> к тому же приведет если в ответе от соц. сети будет login который уже
> есть
> >> в системе => internat error.
> >>
> >> или например у меня один email указан в google и контакте, я смогу
> >> заходить только через то, через что был первый вход, другую кинет
> >> в internat error.
> >>
> >> => в системе не может быть более одного пользователя с login или email.
> >> то есть email и login должны быть уникальными, исключение пустые
> >> (возможно одна запить где email="" и login="";
> >> неограниченно email="", login=random() или email=random(), login="")
> >> но если login задан, такого второго быть не может!
> >>
> >> 1. если к логин можно прикрутить префикс, то как быть с email - ВОПРОС.
> >>
> >> 2. Возможность заходить через e-mail и соц. сети одному и тому же
> >> пользователю.
> >> - как идентифицировать, что это один и тот же человек из разных систем,
> а
> >> не злоумышленник
> >> зарегился под чужой email в контакте и пробует зайдет с правами админа.
> >>
> >> ДОП. ВОПРОСЫ:
> >> 1. В таблице `oauth_servers` есть поле `request_method` типа int
> >> Используется ли оно, если да, то какие возможны значения?
> >>
> >> 2. Кроме login,email,firs_name,last_name - может ли система еще
> что-нибудь
> >> принять, например phone, photo и т.п.
> >> или нужно в базе через "костыль" ковыряться?
> >>
> >> Мои соображения:
> >> Я думаю, что тут  ключевым является требования к безопасности и левел
> >> пользователя в системе.
> >> например: авторизация через соц. сети доступна только для левел гость.
> >>
> >> если нет особых требований к гостям, то пропускать в систему и
> >> идентифицировать по email переданному от сети.
> >> ведь соц. сетях обычно требуют подтверждения email.
> >>
> >> * логин от соц. сетей делать уникальным через префиксы.
> >>
> >> ! настройка в профиле пользователя для доступности входа из соц.сетей и
> >> выбор из каких.
> >>
> >> => необходима обработка ошибки доступа при наличии полученного от соц.
> >> сети email в базе и запрета на доступ.
> >>
> >> P.S. На мой взгляд сегодня решение через "костыль" оптимальное, так как
> >> соц. сети отвечают "как хотят", могут менять типы ответов и т.п.
> >> если кому-нибудь нужно, могу подробно описать как настраивал у себя
> OAuth2.
> >> Очень интересуют ответы на доп. вопросы и мысли по авторизации одного
> >> пользователя из разных систем.
> >>
> >> ---
> >> С уважением, Алексей Терехов.
> >> +7 926 076 15 20
> >>
> >> Вторник,  7 апреля 2015, 23:46 +03:00 от Alexey Terekhov <
> >>  deadl...@mail.ru >:
> >> > Добрый вечер.
> >> > прописал ключи для Google, yandex, facebook, vk.com
> >> > сделал клон таблицы "oauth_servers" (настройки OAuth2)
> >> > добавил в таблицу  поле damp_answer
> >> > написал скрипт получение данных использую настройки OAuth2
> >> > в damp_answer записал работу моего скрипа (html таблица запросов и
> >> ответов)
> >> > после сохранения выгрузки заменил часть ключей на 88888.
> >> >
> >> > 1. если я чего случайно не перекрутил у себя, то у меня прописан был
> >> след. DEFAULT запрос данных из facebook:
> >> >
> >>
> https://graph.facebook.com/me?access_token={$access_token}&fields=username,first_name,last_name,email
> >> >
> >> > ОН НЕВЕРНЫЙ, username следует изменить на name, иначе (если оставить
> >> username, ответ будет NULL)
> >> >
> >> > 2. Разный формат ответа на запрос токена
> >> > google, vk.com, yandex отвечают в формате json: {"a":"X","b":y}
> >> > facebook отвечает: a=X&b=Y
> >> > в damp_answer это видно
> >> >
> >> > 3. Перегружусь под server и подправлю у себя п.1 и попробую выдрать
> >> значимую информацию из логов
> >> > относящуюся к входам fb,vk,yandex.
> >> >
> >> > PS. Если нужно могу проверить(сделать damp) другие, например mail.ru,
> >> одноклассники и т.п., пишите.
> >> >
> >> >
> >> > Надеюсь приложение пройдет.
> >> > 1. debugoauth2.html   вывод базы
> >> > 2. oauth_servers.sql   экспорт базы
> >> >
> >> > ---
> >> > С уважением, Алексей Терехов.
> >> > +7 926 076 15 20
> >> >
> >> > Вторник,  7 апреля 2015, 17:54 +03:00 от Alexey Terekhov <
> >>  deadl...@mail.ru >:
> >> > >
> >> > >О, супер, спасибо!
> >> > >
> >> > > Прописал Google (в OM 3.0.4) - и у меня работает!
> >> > >
> >> > >теперь есть шанс понять, что с facebook и т.п. не так.
> >> > >
> >> > >
> >> > >---
> >> > >С уважением, Алексей Терехов.
> >> > >
> >> > >Вторник,  7 апреля 2015, 18:41 +06:00 от Maxim Solodovnik <
> >>  solomax...@gmail.com >:
> >> > >>фейсбук и контакт проверить не могу (нет учёток)
> >> > >>проверял гугел - работает нормально
> >> > >>
> >> > >>3.0.3 и 3.0.4 скорее не запустились потому что им для работы нужна
> >> java7
> >> > >>
> >> > >>может быть кто-то пробовал настроить и поделится опытом?
> >> > >>
> >> > >>2015-04-07 15:44 GMT+06:00 Alexey Terekhov <  deadl...@mail.ru >:
> >> > >>
> >> > >>> Добрый день, Сообщество! :)
> >> > >>>
> >> > >>> Возникли у меня сложности с OAuth2 (пробовал в 3.0.2 и в 3.0.4 -
> не
> >> решено
> >> > >>> )
> >> > >>> сейчас речь будет о: openmeetings 3.0.4 + MariaDB на Ubuntu
> 14.04.2
> >> server
> >> > >>>
> >> > >>>  поставлена по инструкции для ububtu-14.04.1-desktop-amd64
> >> > >>> (
> >> > >>>
> >>
> https://cwiki.apache.org/confluence/download/attachments/27838216/Installation%20OpenMeetings%203.0.x%20on%20Ubuntu%2014.04.pdf?version=6&modificationDate=1425048449000&api=v2
> >> > >>> )
> >> > >>>
> >> > >>> добавил sudo apt-get install software-properies-common
> >> > >>> и все действия в /opt через sudo, а так чистая система
> поставленная
> >> по
> >> > >>> инструкции.
> >> > >>>
> >> > >>> 1. прописал домены в facebook и vk.com
> >> > >>> в facebook в настройках куча всего + тестовое app и т.п. отдельный
> >> вопрос
> >> > >>> что там нужно ставить и как.
> >> > >>>
> >> > >>> прописал в admin/config
> >> > >>> application.base.url=http://{MYDOMEN}:5080/openmeetings/
> >> > >>>
> >> > >>> 2. проверил работу полученных Client_ID и Client_secret через php.
> >> > >>>
> >> > >>> !!! Особенности(отличие от facebook) vk.com:
> >> > >>>
> >> > >>> querty №1: "
> >> > >>>
> >>
> https://oauth.vk.com/authorize?client_id={ID}&scope=email&response_type=code&redirect_uri={URI
> >> }
> >> > >>> "
> >> > >>> если успех, вернет код и email!
> >> > >>>
> >> > >>> querty №2: "
> >> > >>>
> >>
> https://oauth.vk.com/access_token?client_id={ID}&client_secret={SECRET}&redirect_uri={URI}&code={CODE
> >> }
> >> > >>> "
> >> > >>> если успех, вернет access_token в формате json (facebook
> возвращает
> >> в виде
> >> > >>> параметров url)
> >> > >>>
> >> > >>> querty №3: "
> >> > >>>
> >>
> https://api.vk.com/method/users.get?uids={UIDS}&access_token={TOKEN}&fields=sex,bdate,city
> >> ......
> >> > >>> ."
> >> > >>> если успех, вернет в формате json (facebook, так же на q№3
> >> возвращает в
> >> > >>> формате json)
> >> > >>>
> >> > >>> => прописав в OAuth2 новую настройку 4 vk.com, после авторизации
> >> через
> >> > >>> vk.com и возврата в openmt - internal error.
> >> > >>> предположу, что из-за разного формата ответа на 2й вопрос.
> >> > >>> fb: ?a=X&b=Y
> >> > >>> vk: {"a":"X","b":y}
> >> > >>>
> >> > >>> и важно, vk.com отдает e-mail на 2м запросе, в 3м - где
> >> пользовательские
> >> > >>> данные адреса нет!!!
> >> > >>>
> >> > >>> 3. В итоге прописал ключи полученные в yandex, facebook и
> настройки
> >> vk.com
> >> > >>> с ключами.
> >> > >>> результат = ни один из 3х не работает.
> >> > >>>
> >> > >>> в логах у vk.com ошибка в получении данных. а вот с facebook в
> >> начале все
> >> > >>> как бы нормально, запрашивает code, по коду получает token.
> >> > >>> из брауузера выглядит так: вход через fb => соглашаюсь на передачу
> >> > >>> => возвращает на страницу ввода логина и пасс,  в url содержится
> >> ?code=...
> >> > >>>
> >> > >>> концовка лога. (полная часть в входа через facebook в приложении)
> >> > >>> DEBUG 04-06 22:35:03.927 o.a.wicket.Page:871
> >> > >>> [http-nio-0.0.0.0-5080-exec-2] - ending request for page [Page
> class
> >> =
> >> > >>> org.apache.openmeetings.web.pages.auth.SignInPage, id = 12, render
> >> count =
> >> > >>> 1], request
> >> > >>> org.apache.wicket.protocol.http.servlet.ServletWebRequest@4b7dfc3
> >> > >>> DEBUG 04-06 22:35:03.930 o.a.w.p.PageAccessSynchronizer:207
> >> > >>> [http-nio-0.0.0.0-5080-exec-2] - 'http-nio-0.0.0.0-5080-exec-2'
> >> released
> >> > >>> lock to page with id '12'
> >> > >>> DEBUG 04-06 22:35:03.930
> >> > >>> o.a.w.p.AsynchronousDataStore$PageSavingRunnable:354
> >> > >>> [Wicket-PageSavingThread] - Saving asynchronously: Entry
> >> > >>> [sessionId=E0991D1744CA99FEB6BDBE919E11E65F, pageId=12]...
> >> > >>> DEBUG 04-06 22:35:03.930 o.a.w.p.PageAccessSynchronizer:358
> >> > >>> [http-nio-0.0.0.0-5080-exec-2] - 'http-nio-0.0.0.0-5080-exec-2'
> >> notifying
> >> > >>> blocked threads
> >> > >>> DEBUG 04-06 22:35:03.930 o.a.w.p.DiskDataStore:186
> >> > >>> [Wicket-PageSavingThread] - Storing data for page with id '12' in
> >> session
> >> > >>> with id 'E0991D1744CA99FEB6BDBE919E11E65F' То есть нажимаю войти
> >> через fb
> >> > >>> => в fb
> >> > >>>
> >> > >>> Возможно есть какие-нибудь решение?
> >> > >>>
> >> > >>> Хотя бы от любой системы залогиниться, я смогу на php написать
> >> прокси,
> >> > >>> который вернет в нужном формате данные для openmeetings например
> от
> >> vk.com
> >> > >>>
> >> > >>> Много пользователей в России пользуются vk.com и не хочется их
> >> терять. :)
> >> > >>>
> >> > >>> P.S. есть еще 3.0.2 под ubuntu 10.4, кстати 3.0.3 и 3.0.4 на 10.4
> не
> >> > >>> запустились (red5.sh чего-то ругнулся..) в ней (3.0.2) авторизация
> >> так же
> >> > >>> не проходит.
> >> > >>>
> >> > >>> Спасибо!
> >> > >>>
> >> > >>> ---
> >> > >>> С уважением, Алексей Терехов.
> >> > >>> +7 926 076 15 20
> >> > >>
> >> > >>
> >> > >>
> >> > >>
> >> > >>--
> >> > >>WBR
> >> > >>Maxim aka solomax
> >> >
> >>
> >
> >
> >
> >--
> >WBR
> >Maxim aka solomax
>
>


-- 
WBR
Maxim aka solomax

Ответить