запуск процесса входа в систему Everyauth без обновления страницы (аутентификация через Facebook)

Я настроил everyauth, и это выглядит неплохо.

Прямо сейчас, как показано в этом выпуске NodeTuts, нужно перейдите к http://www.example.com/auth/facebook или http://www.example.com/auth/twitter для аутентификации.

Как я могу настроить everyauth, чтобы я мог прикрепить событие JavaScript к кнопке для запуска аутентификации?

Например, в следующем коде кнопка внизу при нажатии должна открывать окно аутентификации Facebook. Как мне это сделать с Everyauth?

<html>
    <head>
      <title>My Facebook Login Page</title>
    </head>
    <body>
      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : 'YOUR_APP_ID',
            status     : true, 
            cookie     : true,
            xfbml      : true,
            oauth      : true,
          });
        };
        (function(d){
           var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = "//connect.facebook.net/en_US/all.js";
           d.getElementsByTagName('head')[0].appendChild(js);
         }(document));
      </script>
      <div class="fb-login-button">Login with Facebook</div>
    </body>
</html>

person Gezim    schedule 22.01.2012    source источник
comment
Может быть, iframe для одного из этих URL-адресов будет работать?   -  person DTrejo    schedule 22.01.2012
comment
@DTrejo, неплохая идея. Интересно, есть ли лучший способ.   -  person Gezim    schedule 22.01.2012
comment
Я предлагаю вам рассмотреть модель SE и посмотреть на исходный код их страницы. Они делают что-то очень похожее.   -  person jcolebrand    schedule 22.01.2012
comment
@jcolebrand, о какой модели SE вы говорите? Извините, я не слежу.   -  person Gezim    schedule 22.01.2012
comment
Эта сеть является сетью StackExchange. Когда вы входите на любой сайт StackExchange, все они аутентифицируются на одном сервере аутентификации и совместно используют учетные данные для входа. Это то, что вам нужно сделать здесь.   -  person jcolebrand    schedule 22.01.2012
comment
Я не верю, что Everyauth поддерживает токены oauth Facebook через JS SDK, только обмен на стороне сервера. Если вы хотите сделать это, вам, вероятно, придется работать с кодом Everyauth, а не использовать его как есть. Известно, что изменение кода oauth вызывает мигрень.   -  person leebriggs    schedule 23.02.2012


Ответы (1)


Посмотрите на библиотеку easy-oauth Роба Райтера: https://github.com/robrighter/easy-oauth/blob/master/lib/easy-oauth.js

Он вводит js на стороне клиента, а затем обходит маршрут.

person dzajdband    schedule 06.03.2012