OAuth в направляющих - Google, Твиттер, Facebook, соединяется для входа в систему как вход в систему stackoverflow

Направляющие имеют остальных autho плагин, который работает хорошо, но является там решением для слияния Твиттера, Facebook, Google, Yahoo, и т.д...

Кажется, что у каждого на есть его собственный плагин и требования, и смешивание их будет путаницей.

Это для входящих в систему пользователей как то, как Stackoverflow добивается цели не для того, чтобы использовать устойчивые функции API.

То, что я хочу сделать, делают то, что stackoverflow сделал для входа в систему, но в направляющих.

5
задан thenengah 2 April 2010 в 10:53
поделиться

3 ответа

Нетрудно написать собственный код контроллера для подключения к каждой из этих служб и перенаправления. Например, для аутентификации в Twitter с использованием oauth требуется два действия и всего около 20 строк кода.

Храните код для каждой службы отдельно в ее собственном контроллере.

def twitter_oauth
  o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
  o.set_callback_url(twitter_cb_url)
  session[:twitter_oauth_request_token] = o.request_token.token
  session[:twitter_oauth_request_secret] = o.request_token.secret
  redirect_to o.request_token.authorize_url
end

def twitter_oauth_cb
  o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
  if params[:denied]
    redirect_to root_url
  elsif params[:oauth_verifier]
    o.authorize_from_request(session[:twitter_oauth_request_token], 
                             session[:twitter_oauth_request_secret],
                             params[:oauth_verifier])
    # look up this user in the db by o.access_token.token 
    # is the user not found? create them, save their token
    # log them in - UserSession.create(user, true)
    redirect_to root_url
  end
end
3
ответ дан 13 December 2019 в 22:05
поделиться

Если у вас есть бюджет, вы можете проверить RPX: https: // rpxnow .com / .

0
ответ дан 13 December 2019 в 22:05
поделиться
​​

Я сделал реализация этого с использованием authlogic с использованием того же плагина JQuery OpenID Selector, который использует StackOverflow. Работает с Google, Yahoo, Facebook и т. Д. Пользуюсь им около 3 месяцев, работает неплохо. Еще несколько изгибов в тренировке, он также поддерживает автоматическую регистрацию.

Я хотел бы добавить твиттер в будущие версии и надеюсь, что другие помогут добавить некоторые функции / исправления ошибок. ;-) Зацени.

В действии:

http://big-glow-mama.heroku.com/

Код:

http://github.com/holden/authlogic_openid_selector_example

1
ответ дан 13 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: