ну Вы напишите какие поля какой провайдер предоставляет и как они называются (если это возможно) и я поправлю чтобы нормально работало
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