На моем сайте электронной коммерции я предлагаю своим пользователям openid login. Все основные поставщики, за исключением facebook, предложили openid endpoint this. Facebook предлагает только oauth 2.0.Возможно ли реализовать Oauth 2.0 без javascript?
Для этого исключения я сам создал конечную точку openid, где пользователи могут войти в систему, используя facebook oauth.
Другими словами, я создал сайт-посредник, в котором пользователь входит в систему с использованием facebook, а оттуда плавно переходит на мой сайт электронной торговли с помощью openid. Это просто связано с переадресацией заголовков и работает прозрачно для конечного пользователя.
Сейчас amazon joined the league единого входа на поставщиков. Они поддерживают только oauth 2.0.
В целом oauth 2.0, по-видимому, является победителем, а не openid, так как все провайдеры, которых я забочусь, также поддерживают oauth.
Так что я подумал о том, чтобы реализовать oauth прямо на моем сайте электронной коммерции.
Однако инструкции по внедрению сильно отличаются от поставщика провайдера.
Большинство из них требуют, чтобы на сайт загружался внешний javascript. Загрузка внешних javascripts для каждого поставщика oauth, который я хочу поддержать, - это вариант, который я бы хотел избежать.
Facebook предлагает полностью серверную сторону, без использования javascripts.
Amazon нет.
Но все ли это oauth 2.0, не так ли?
Мне кажется, что либо стандарт очень расслаблен, либо не выполняется последовательно.
Возможно ли иметь общий класс oauth 2.0, где я просто передаю конфигурацию и конечные точки, специфичные для theprovider, и получить логин?
Я посмотрел на реализацию Zend, но это действительно очень огромный ... facebook не-Javascript реализация действительно мало ...
Я немного потерял здесь. Может ли кто-нибудь указать мне в правильном направлении?
Я хочу реализовать несколько поставщиков oauth. Среди тех, кто уверен, google, facebook, amazon и twitter.
Можно ли сделать это с одной и той же кодовой базой, или мне нужно внедрить их все отдельно, используя их классы sdk и javascripts?
я мог бы сделать это без проблем, но мой Gutts действительно не нравится по нескольким причинам (обслуживания, гибкости, addint новых proviers и т.д ..)
А где OAuth 2,0 стандарта в этом?
Любая помощь предоставляется.
Личные Sidenote
Я извиняюсь за эту возможность кратко указать на то, что я не как Oauth. Он требует, чтобы каждый сайт, который использует его, регистрировался у поставщиков . Также эти поставщики могут не согласиться на сотрудничество с сайтами. Мне не нравится эта власть, я предпочитаю openid. Я знаю его не отлично, но я предпочитаю его. Кроме того, openid и oauth уязвимы для дизайна для атаки, где вредоносные сайты позволяют пользователю нажать кнопку входа и открыть страницу поддельного провайдера, где пользователь регистрирует , полагая, что он заходит на сайт провайдера. Он не может быть помог, пользователь должен посмотреть на URL-адрес, чтобы узнать, действительно ли он нужен . Я знаю, что это фундаментальная проблема и трудная задача: , но я хотел бы указать на это.
это только oauth 1 ia m, который ищет клиента для oauth 2 и пытается заставить его работать со всеми поставщиками ... –
Это взято из описания: «Эта спецификация, вероятно, будет производить широкий спектр нестандартных -переключаемые реализации ". http://tools.ietf.org/html/draft-ietf-oauth-v2-30#section-1.8 –
Да, может быть ряд реализаций, тогда вы должны прочитать информацию о каждом провайдере (Facebook, Amazon ...) но я думаю, они не сильно отличаются. В OAuth 1.0 существовал базовый поток авторизации: request_token -> authorize or authenticate -> access_token, как только вы понимаете, что этот процесс не так уж и трудный. Глядя на библиотеку tmhOAuth, которую я связывал, похоже, что она поддерживает только 1.0A, поэтому, возможно, есть еще одна библиотека, уже реализованная для версии 2.0 или, возможно, вам нужно ее реализовать самостоятельно. Но, отвечая на ваш первый вопрос: вы можете сделать это с помощью чистого PHP. –