EPI: Interfejs Graczny 2010/2011 Uwierzytelnianie w aplikacji Rails z u»yciem gemu Authlogic

Līdzīgi dokumenti
RietumuAPI_PSD2_v1_LV

Autentifikācija Windows darbstacijās ar eid viedkarti Konfigurācijas rokasgrāmata Konfigurācija atbilst Windows Server 2012 R2 un Windows Server 2008

Akciju sabiedrības PROTEZĒŠANAS UN ORTOPĒDIJAS CENTRS K A T A L O G S iepirkuma 3. daļai Atklātam konkursam Par tiesībām pielāgot un izsniegt gatavos

Prezentacja programu PowerPoint

Red button

07 - Martins Orinskis - FED.pptx

Programmēšanas valoda iesācējiem 4. daļa. Programmēšanas prakse 2007 Alvils Bērziņš

1 (6) BNA auto parts SIA Pildas iela 16 B, Rīga. Tel.: , Fakss: e-pasts: Kods Apraksts Cena Cena EUR

OWASP Top 10 Latvijā Biežākās drošības problēmas 4mekļa lietojumos Agris Krusts, IT Centrs, SIA

Nintex Workflow 2010 instalēšanas ceļvedis Instalēšanas ceļvedis Nintex USA LLC 2012, visas tiesības paturētas. Kļūdas un izlaidumi novērsti.

State Revenue Services of the Republic Latvia Talejas iela 1, Riga LV-1978 Latvia Ihr Vor- und Zuname Ihre Straße und Hausnummer Ihre Postleitzahl Ihr

Microsoft Word - du_5_2005.doc

SNP3000_UM_LV_2.2.indd

Regates.lv | Sacensību paziņojums

QSG_RUTX08_EN_v2.0.pdf

Mūsu programmas Programmu ilgums 1 semestris 15 nodarbības 1,5 h nodarbības ilgums

Ldz vpn INSTRUKCIJA WINDOWS LIETOTĀJIEM.

Microsoft Word - KK_NOR'19.docx

LV10572 Otrais izdevums Oktobris 2015 E-rokasgrāmata

PowerPoint Presentation

PowerPoint Presentation

Multifunkcionāla viesnīca Apart Hotel TOMO" Divvietīga vai vienvietīga istaba Cenas: EUR mēnesī (dzivo viena persona) EUR jāmaksā ka

ir plašam sabiedrības lokam paredzēts dažāda veida izklaides un tūrisma aktivitāšu un savstarpējās komunikācijas portāls, kura

RĪGAS JAHTKLUBA GADA ĶĪŠEZERA KAUSS Optimist, Laser 4.7,Laser Radial sporta laivu klasēm Latvijas gada kopvērtējuma ieskaites sacensības g

Microsoft PowerPoint - IRASA APHP CONSENSUS UZ no ppt [Read-Only] [Compatibility Mode]

Tirgus dalībnieka nosaukums: "Citadele Asset Management" Ieguldījumu pārvaldes akciju sabiedrība Kods: 098 Citadele Universalais pensiju plans 1. piel

6.pielikums APSTIPRINĀTS ar Rīgas 6. vidusskolas direktora rīkojumu Nr. VS rs Rīgas 6.vidusskolas Vispārējās vidējās izglītības hum

Oracle SQL teikuma izpildes plāns (execution plan)

Iedzīvotāju viedoklis par teledarba attīstības iespējām Latvijā

PALĪGS DOKUMENTU IEVIETOŠANAI

PIELIKUMS PIETEIKUMAM-LĪGUMAM. Dalības noteikumi (turpmāk Noteikumi) izstādē Pavasaris 2019 (turpmāk Izstāde). ATTACHMENT TO APPLICATION-AGREEMENT. Te

EIROPAS KOMISIJA Briselē, COM(2018) 284 final ANNEXES 1 to 2 PIELIKUMI dokumentam Priekšlikums Eiropas Parlamenta un Padomes regulai, ar ko

PowerPoint Presentation

Individuālās tirgvedības stratēģijas attīstīšana

Kārtības 2. pielikums "Latvijas Bankas elektroniskās klīringa sistēmas (EKS) funkcionālais apraksts"

suvenīru katalogs

Valkas novada pašvaldības informatīvs izdevums N Nr. 66 (4) 2015.gada 29.aprīlī umura ievadsleja A r Lielo talku noslēdzies aprīlis. Valkas novada ied

REKOMENDĀCIJAS Mazo uzņēmēju reģistrācijai un integrācijai interneta biznesu reģistros gads Kalnciema iela 40, Riga, L

RĪCĪBAS PROGRAMMAS IETVAROS APSTPRINĀTIE PROJEKTI BIEDRĪBAS GAUJAS PARTNERĪBA DARBĪBAS TERITORIJĀ LĪDZ GADAM THE PROJECTS IN THE WORKING AREA OF

Piezīmjdatora E-rokasgrāmata

Darba grupa “Skolēnu pašpārvalde kā atklātības un godīguma sargsuns skolas dzīvē”

LV11215 Otrais izdevums Janvāris 2016 E-rokasgrāmata

LV10524 Pirmais izdevums Septembris 2015 ASUS Piezīmjdatora E-rokasgrāmata

Genorise Scientific Catalog.xls

AGV / Apaļie gaisa vadi Izmērs AL90 / Apaļo gaisa vadu līkums 90 o Izmērs

WEB OF SCIENCE PAMATKOLEKCIJA Īsā lietošanas pamācība Kas ir Web of Science Pamatkolekcija? Veiciet meklēšanu datubāzē ar vairāk nekā 55 miljoniem dok

AIC-9gadi-plakāti

Akciju sabiedrības PROTEZĒŠANAS UN ORTOPĒDIJAS CENTRS K A T A L O G S iepirkuma 1. daļai Atklātam konkursam Par tiesībām pielāgot un izsniegt gatavos

Deeper Smart Sonar START Technical Specifications Weight: 2.1oz / 60g Size: 60 x 65 x 65-mm / 2.3 x 2.5 x 2.5in Sonar Type: Single beam Frequency (Bea

HIV infekcijas izplatība

BUCO P.cdr

PowerPoint Presentation

IANSEO - Integrated Result System - Version ( ( )) - Release STABLE

K 5 ( )

IEGULDĪJUMS TAVĀ NĀKOTNĒ Projekts Nr. 2009/0216/1DP/ /09/APIA/VIAA/044 NESTRIKTAS KOPAS AR VĒRTĪBĀM PUSGREDZENĀ UN MONĀDES PĀR KATEGORIJU Jāni

Tūrisms & internets. kurš kuru? Liene Kupča

2.2/20 IEGULDĪJUMS TAVĀ NĀKOTNĒ! Eiropas Reģionālās attīstības fonds Prioritāte: 2.1. Zinātne un inovācijas Pasākums: Zinātne, pētniecība un at

Microsoft Word - Zinjojums

Slide 1

Slide 1

04.AR.12_11LV.fm

Transkripts:

EPI: Interfejs Graczny 2010/2011 Uwierzytelnianie w aplikacji Rails z u»yciem gemu Authlogic 11 stycznia 2011

Wprowadzenie uwierzytelnianie, autentykacja zwerykowanie,»e osoba jest tym, za kogo si podaje autoryzacja, kontrola dost pu zwerykowanie,»e osoba wykonuj ca okre±lon operacj, ma do tego prawo Uwierzytelnianie: Authlogic Devise restful-authentication Autoryzacja: cancan declarative_authorization acl9

Authlogic najbardziej popularny wysoce kongurowalny dziaªa z Railsami v. 3 spore mo»liwo±ci, np. dodatki trwaªa sesja resetowanie hasªa przez e-mail ró»ne algorytmy hashowania OpenID LDAP Facebook OAuth PAM

Konguracja Gemfile gem 'authlogic', :git => 'git://github.com/odorcicd/authlogic.git', :branch => 'rails3' na wierzbie lub systemie, gdzie mamy prawa zapisu do katalogu z gemami: $ bundle install w pracowni lub systemie, gdzie nie mamy praw zapisu do katalogu z gemami: $ bundle install.bundle

Modele UserSession User zawiera logik zwi zan z obsªug sesji (np. sposób jej przechowywania) dziedziczy z Authlogic::Session::Base jest zwykªym modelem railsowym deniowanym przez u»ytkownika mo»e dziedziczy np. z ActiveRecord::Base posiada pola takie jak: login, hasªo, e-mail

Kontrolery UserSessionsController zarz dza sesj u»ytkownika pozwala na zalogowanie si i wylogowanie z aplikacji UsersController zarz dza tworzeniem u»ytkowników i ich modykacj ApplicationController posiada dodatkowe metody wykorzystywane w innych kontrolerach, które sªu» np. do sprawdzenia, czy u»ytkownik jest zalogowany

Model User $ rails g model user login:string email:string crypted_password:string admin:boolean persistence_token:string $ rake db:migrate app/models/user.rb class User < ActiveRecord::Base attr_protected :admin acts_as_authentic do config config.crypted_password_field = :crypted_password config.require_password_confirmation = true

Przykªadowe dane $ db/seeds.rb user = User.new(:login => 'admin', :password => 'password', :password_confirmation => 'passowrd', :email => 'my@email.com') user.save user.update_attribute(:admin,true) $ rake db:seed

Kontroler UsersController 1/4 $ rails g controller users new create edit update app/models/users_controller.rb class UsersController < ApplicationController def new @user = User.new def create @user = User.new(params[:user]) if @user.save flash[:notice] = "Registration successful." redirect_to root_url else rer :action => 'new'

Kontroler UsersController 2/4 app/models/users_controller.rb class UsersController < ApplicationController def edit @user = current_user def update @user = current_user if @user.update_attributes(params[:user]) flash[:notice] = "Successfully updated profile." redirect_to root_url else rer :action => 'edit'

Kontroler UsersController 3/4 config/routes.rb AuthlogicV3::Application.routes.draw do resources :users, :only => [:new, :create,:edit,:update] # get "users/new" # get "users/edit" #... $ rm app/views/users/create.html.erb $ rm app/views/users/update.html.erb

Kontroler UsersController 4/4 app/views/users/new.html.erb <%= form_for @user do f %> <p> <%= f.label :login %> <br /> <%= f.text_field :login %> </p> <p> <%= f.label :password %> <br /> <%= f.password_field :password %> </p> <p> <%= f.label :password_confirmation %> <br /> <%= f.password_field :password_confirmation %> </p> <p><%= f.submit "Submit" %> </p> <% %> app/views/users/edit.html.erb podobnie, ale np. nie powinien pozwala na zmian loginu

Model UserSession + kontroler UserSessionsController app/models/user_session.rb class UserSession < Authlogic::Session::Base login_field :login $ rails g controller user_sessions new create destroy config/routes.rb AuthlogicV3::Application.routes.draw do get "user_session/new", :as => 'login' post "user_session/create" get "user_session/destroy", :as => 'logout' # Trzeba skonfigurowac strone startowa, np. root :to => "books#index" $ rm app/views/user_sessions/create.html.erb

Kontroler UserSessionsController 1/2 app/controllers/user_sessions_controller.rb class UserSessionsController < ApplicationController def new @user_session = UserSession.new def create @user_session = UserSession.new(params[:user_session]) if @user_session.save flash[:notice] = "Successfully logged in." redirect_to root_url else rer :action => 'new' def destroy @user_session = UserSession.find @user_session.destroy flash[:notice] = "Successfully logged out." redirect_to root_url

Kontroler UserSessionsController 2/2 app/views/user_sessions/new.html.erb <% form_for @user_session do f %> <p> <%= f.label :login %> <br /> <%= f.text_field :login %> </p> <p> <%= f.label :password %> <br /> <%= f.password_field :password %> </p> <p><%= f.submit "Submit" %> </p> <% %>

Kontroler ApplicationController app/controllers/application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery helper_method :current_user private def current_user_session return @current_user_session if defined?(@current_user_session) @current_user_session = UserSession.find def current_user return @current_user if defined?(@current_user) @current_user = current_user_session && current_user_session.record def authenticate if!current_user redirect_to login_path

Przykªad u»ycia 1/2 je±li chcemy aby u»ytkownik mógª wykona akcje kontrolera je±li jest zalogowany dodajemy ltr before_filter, który wywoªuje akcj authenticate z kontrolera ApplicationController class AuthorsController < ApplicationController before_filter :authenticate #... Jej dziaªanie mo»e by ograniczone do okre±lonych akcji mo»emy skorzysta z opcji :only (tylko te akcje b d chronine) lub :except (te akcje nie b d chronine): class AuthorsController < ApplicationController before_filter :authenticate, :except => [:index,:show] #...

Przykªad u»ycia 2/2 Je±li chcemy aby okre±lone akcje byªy dost pne tylko dla administratora, mo»emy doda odpowiedni metod w apllication_controller.rb class ApplicationController < ActionController::Base #... private def admin_required if!current_user redirect_to login_path elsif!current_user.admin? flash[:notice] = "You are not allowed to do that." redirect_to root_url Nast pnie u»ywamy jej tak samo jak metody authenticate, tzn. korzystaj c z makra before_filter.

Materiaªy Dokumentacja rdoc.info/projects/binarylogic/authlogic Railscast (dla Rails 2.3.x) railscasts.com/episodes/160-authlogic

Dzi kuj!