SORU
27 AĞUSTOS 2010, Cuma


Raylar 3 Vasiyetle kullanarak Nasıl birileri Facebook hesabını kullanarak oturum açmak için izin?

Raylar 3 uygulama kimlik doğrulaması için Devise kullanıyorum. Şimdi birileri Facebook hesabını kullanarak oturum açmak için izin istiyorum. Bu Bağlan Facebook denir düşünüyorum, ama aynı zamanda dönem Facebook Grafik API duyduğum için soruyorum, tam olarak emin değilim.

Ben Facebook Vasiyet ile Bağlantı entegre etmek için ne yapmam gerekiyor?

Çözüm:

Bu soru oldukça eski. Bir yıl önce, v1 Hazırlamak.2 OmniAuth destek sundu. Şimdi Hazırlamak v2.1 (Bu yazı gibi) kullanarak OmniAuth bile daha kolaydır. Burada using the omniauth-facebook gem with Devise to allow sign-in using Facebook Hazırlamak wiki büyük bir öğretici.

Ayrıca registering your application and working with the Facebook Graph API Bu büyük öğretici kontrol edin.

CEVAP
31 AĞUSTOS 2010, Salı


Ne yaptıklarını görmek için vasiyet github sayfasını kontrol ettim. Bu proje facebook desteği diğer şeyler arasında bağlantı var olduğu gibi oldukça hızlı ve hareketli. OAuth2 bölümüne göz atın. Ama facebook için aynı şey olacaktı ve farklılıklarını söz örnek olarak github kullanıyorlar. Bu gitmek için yol olduğunu düşünüyorum, hazırlamak için üçüncü parti taşlar hazırlamak kadar hızlı hareket etme ya da raylar. Şerefe.

Ayy burada 15* *link

Edit

Tabii ki çok az kodlama işte bu yüzden buraya çoğunlukla varsayılan gitti, ben de gittim:

Yeni bir uygulama oluşturmak ve gemfile bu taşlar ekleyin.

gem 'devise', :git => 'git://github.com/plataformatec/devise.git'
gem 'oauth2', :git => 'git://github.com/intridea/oauth2.git'

Çalışma paketi yükleyin, daha sonra bu komutları temel Kullanıcı doğrulama modeli ile alır.

rails generate devise:install
rails generate devise User

Config//hazırlamak başlatıcılar.rb Yorumsuz bu değiştirin. Facebook dan app_key ve gizli olsun nerede son paragrafa bak.

config.oauth :facebook, 'app_key', 'secret',
    :site              => 'https://graph.facebook.com',
    :authorize_path    => '/oauth/authorize',
    :access_token_path => '/oauth/access_token'

Bu kullanıcı model olmalıdır.

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable, :timeoutable and :oauthable
  devise :database_authenticatable, :oauthable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me

  def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
    # Get the user email info from Facebook for sign up
    # You'll have to figure this part out from the json you get back
    data = ActiveSupport::JSON.decode(access_token)

    if user = User.find_by_email(data["email"])
      user
    else
      # Create an user with a stub password.
      User.create!(:name => data["name"], :email => data["email"], :password => Devise.friendly_token)
    end
  end
end

Kullanan bir kök hazırlamak:=^. "bir şey#burada" Endeksi bir eylem ile bir ev denetleyicisi oluşturdum ve bu uygulama kök için kullanılır. bu yüzden Ama boşver. Tasarım/uygulama var.html.sign_n sign_out temel yolları vardı bu kadar erb.

<span>
  <%- if user_signed_in? %>
    <%= "Signed in as #{current_user.full_name}. Not you?" %>
    <%= link_to 'Sign out', destroy_user_session_path %>
  <%- else %>
    <%= link_to 'Sign in', new_user_session_path %>
  <%- end %>
</span>

Hemen hemen hazırlamak bizim için başka her şeyi halleder. Facebook dan app_key ve sırrı olsa gerek ne (kullanılan vasiyetle.yapılandırma dosyası) rb. Bu link. http://developers.facebook.com/setup

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • CasinoRoyaleMovie's channel

    CasinoRoyale

    1 AĞUSTOS 2006
  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006