OmniAuth for facebook



我正在尝试使用这个railscast集通过twitter提供身份验证http://railscasts.com/episodes/235-omniauth-part-1

我想知道是否可以使用全面授权登录与facebook以及?

另外,我想使用HTML OpenID选择器,但演示没有facebook按钮,他们的常见问题提示他们不支持facebook,然而,SO认证页面确实显示facebook作为按钮之一。SO使用的openid选择器是自定义的?

刚刚添加到您的omniauth。facebook的Rb凭据

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'CONSUMER_KEY', 'CONSUMER_SECRET'
end

在你的会话或身份验证动作(你处理twitter登录)添加额外的逻辑为facebook

正如其他答案所说,如果你想在facebook上使用全能,那么只需遵循Mikhail的答案(你通过在facebook上注册获得消费者密钥和秘密)。如果你遵循这个模式,你实际上将通过OAuth2而不是通过OpenID与facebook进行身份验证。

如果你想在OpenID提供商(例如google)上使用omniauth,模式略有不同,例如:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :openid, ActiveRecordOpenidStore::ActiveRecordStore.new, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end 

OpenID需要一个"存储"来存储在身份验证过程中创建的关联和随机数(在上面的情况下,我们使用基于ActiveRecord的OpenID存储)。将上面的配置转到以下url:

${RAILS_ROOT}/auth/google

应该启动针对google的OpenID认证过程。如果希望使用不同的OpenID提供程序进行身份验证,则需要适当地更改:name:identifier字段。

login url for facebook - railsroot/auth/facebook

twitter的登录url - railsroot/auth/twitter

在你的全能。Rb初始化器

require 'openssl'

    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE 
    Rails.application.config.middleware.use OmniAuth::Builder do
     provider :twitter, ' consumerkey ', 'consumer-secret  '
     provider :facebook, 'api-key' ,'api-secret', {:scope=>'publish_stream,offline_access,email'}
    end

使用自己的作用域访问权限

相关内容

  • 没有找到相关文章

最新更新