0

この Railscast エピソードを使用して、Twitter 経由で認証を提供しようとしていますhttp://railscasts.com/episodes/235-omniauth-part-1

オムニ認証を使ってFacebookでもログインできるかどうか疑問に思っていますか?

また、 HTML OpenID セレクターを使用したかったのですが、デモには facebook ボタンがなく、FAQ は facebook をサポートしていないことを示唆していますが、SO 認証ページには facebook がボタンの 1 つとして表示されます。SO が使用する openid セレクターはカスタムですか?

4

3 に答える 3

2

just add to you omniauth.rb credentials for facebook

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

In you session or authentication action(where you deal with twitter login) add extra logic for facebook.

于 2011-08-04T19:06:15.577 に答える
0

他の回答が言っているように、Facebook で omniauth を使用する場合は、Mikhail の回答に従ってください (Facebook に登録することでコンシューマ キーとシークレットを取得します)。このパターンに従うと、実際には OpenID ではなく OAuth2 を介して facebook で認証することになります。

たとえば、Google などの OpenID プロバイダーで 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 認証プロセスを開始する必要があります。:name別の OpenID プロバイダーを使用して認証する場合は、 フィールドと:identifierフィールドを適切に変更する必要があります。

于 2011-08-06T10:08:22.670 に答える
0

FacebookのログインURL - railsroot/auth/facebook

TwitterのログインURL - railsroot/auth/twitter

omn​​iauth.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

独自のスコープ アクセス許可を使用する

于 2011-08-06T08:47:21.020 に答える