Använda Omniauth för att autentisera dina användare

Gå socialt eller gå hem! Detta borde vara mantrat för alla företag under 2016. Onlineterritorium har redan maskat sig in i praktiskt taget alla företag och det finns ingen väg ut ur digitala tåget om du inte vill bli kvar. Sociala medier har blivit andra natur för de flesta av oss och oavsett vilken marknad du riktar dig till, om du inte möter din publik där de umgås, löper ditt företag en enorm risk att hamna på efterkälken. Ett av de bästa sätten att integrera socialt i ditt företag är genom att låta användare logga in på ditt företag via sociala kanaler.
Omniauth är en sådan stor pärla som låter dig enkelt integrera sociala autentiseringsleverantörer, inklusive Facebook, Google, Twitter och GitHub för din Ruby on Rails-webbapplikation. Kolla in stegen nedan för att lära dig hur du integrerar dessa autentiseringsleverantörer i din app.

Låt oss anta att du har en rails-applikation med devise gem eller något annat inloggningssystem

Öppna nu din Gemfil och referera till omniauth-pärlan.

1 pärla 'omniauth'

Kör sedan, som vanligt, kommandot bundle install för att installera ädelstenen.

Skapa en leverantör på sociala medier (Facebook)

För att lägga till en leverantör till Omniauth måste du registrera dig som utvecklare på leverantörernas webbplats. Efter att du har registrerat dig kommer du att få två strängar (som ett användarnamn och ett lösenord), som du skulle behöva skicka vidare till Omniauth. Men om du använder en OpenID-leverantör behöver du bara en OpenID-URL.

Om du vill använda Facebook-autentisering, besök developers.facebook.com/apps och klicka på "Skapa ny app"

Lägg till dina leverantörer i appen.

Skapa en ny fil under config/initializers som heter omniauth.rb. Du kan konfigurera dina autentiseringsleverantörer genom den här filen.

Lägg till nedanstående koder i filen som du skapade tidigare:

Rails.application.config.middleware.use OmniAuth::Builder gör
leverantör :facebook, YOUR_APP_ID, YOUR_APP_SECRET
slutet

Det här är all konfiguration du behöver för att få igång detta. Resten tar Omniauth hand om, som vi ska hitta i nästa steg.

Öppna filen app/controllers/sessions_controller.rb och skriv skapametoden, som

def skapa
auth_hash = request.env['omniauth.auth']

render :text => auth_hash.inspect
slutet

Skapa användarmodellen

def skapa
auth_hash = request.env['omniauth.auth']

@authorization = Authorization.find_by_provider_and_uid(auth_hash[“provider”], auth_hash[“uid”])
om @auktorisation
render :text => "Välkommen tillbaka #{@authorization.user.name}! Du har redan anmält dig."
annan
user = User.new :name => auth_hash[“user_info”][“name”], :email => auth_hash[“user_info”][“email”]
user.authorizations.build :provider => auth_hash[“provider”], :uid => auth_hash[“uid”]
användare.spara

render :text => “Hej #{användarnamn}! Du har anmält dig."
slutet
slutet

list_with_promote=[]
list_without_promote=[]
User.find_by_email(“[email protected]”).listings.approved.each do |u|
om u.listing_promotes.present?
list_with_promote << u.id
list_with_promote << u.listing_promotes.map{|u| p u.promote.name }
annan
list_without_promote << u.id
slutet
p "*******"
slutet

Referenser;

Github: https://github.com/intridea/omniauth

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish