Ricerca…


introduzione

Devise è una gemma molto potente, ti consente di iscriverti, accedere e uscire dalle opzioni subito dopo l'installazione. Inoltre, l'utente può aggiungere autenticazioni e restrizioni alle sue applicazioni. Devise anche venire con le proprie opinioni, se l'utente vuole usare. Un utente può inoltre personalizzare la registrazione e accedere ai moduli in base alle proprie necessità e necessità. Va notato che Devise ti consiglia di implementare il tuo login se sei nuovo alle guide.

Osservazioni

Al momento della generazione delle configurazioni di configurazione che utilizzano i rails generate devise:install , devise elencherà una serie di istruzioni sul terminale da seguire.

Se hai già un modello USER , eseguendo questo comando i rails generate devise USER aggiungerà le colonne necessarie al tuo modello USER esistente.

Usa questo metodo di supporto before_action :authenticate_user! nella parte superiore del controller per verificare se l' user è connesso o meno. in caso contrario, verranno reindirizzati alla pagina di accesso.

Autenticazione usando Devise

Aggiungi gemma al Gemfile:

gem 'devise'

Quindi eseguire il comando di bundle install del bundle install .

Usa il comando $ rails generate devise:install per generare il file di configurazione richiesto.

Imposta le opzioni URL predefinite per il mailer Devise in ogni ambiente Nell'ambiente di sviluppo aggiungi questa riga:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

alla tua config/environments/development.rb

allo stesso modo in produzione questo file di config/environments/production.rb e aggiungi

config.action_mailer.default_url_options = { host: 'your-site-url'}

Quindi creare un modello utilizzando: $ rails generate devise USER Dove USER è il nome della classe per il quale si desidera implementare l'autenticazione.

Infine, esegui: rake db:migrate e siete tutti impostati.

Viste personalizzate

Se è necessario configurare le viste, è possibile utilizzare i rails generate devise:views generatore di rails generate devise:views che copierà tutte le viste all'applicazione. Quindi puoi modificarli come desiderato.

Se si dispone di più di un modello Devise nella propria applicazione (ad esempio Utente e Amministratore), si noterà che Devise utilizza le stesse viste per tutti i modelli. Devise offre un modo semplice per personalizzare le visualizzazioni. config.scoped_views = true nel file config/initializers/devise.rb .

È anche possibile utilizzare il generatore per creare viste con scope: i rails generate devise:views users

Se si desidera generare solo alcune serie di viste, come quelle per il modulo registrabile e confermabile, utilizzare il flag -v: rails generate devise:views -v registrations confirmations

Definire i filtri e gli helper del controller

Per configurare un controller con l'autenticazione utente usando devise, aggiungi questo before_action: (assumendo che il tuo modello di dispositivo sia 'Utente'):

before_action :authenticate_user!

Per verificare se un utente ha effettuato l'accesso, utilizzare il seguente helper:

user_signed_in?

Per l'attuale utente che ha effettuato l'accesso, usa questo helper:

current_user

È possibile accedere alla sessione per questo ambito:

user_session

  • Nota che se il tuo modello Devise è chiamato Member anziché User , sostituisci l' user sopra con il member

Omniauth

Prima scegli la tua strategia di autenticazione e aggiungila al tuo Gemfile . Puoi trovare un elenco di strategie qui: https://github.com/intridea/omniauth/wiki/List-of-Strategies

gem 'omniauth-github', :github => 'intridea/omniauth-github'
gem 'omniauth-openid', :github => 'intridea/omniauth-openid'

Puoi aggiungerlo al middleware del tuo rails in questo modo:

Rails.application.config.middleware.use OmniAuth::Builder do
  require 'openid/store/filesystem' 
  provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET']
  provider :openid, :store => OpenID::Store::Filesystem.new('/tmp')
end

Per impostazione predefinita, OmniAuth aggiungerà /auth/:provider ai percorsi e puoi iniziare utilizzando questi percorsi.

Per impostazione predefinita, se si verifica un errore, omniauth reindirizzerà a /auth/failure

has_secure_password

Crea modello utente

rails generate model User email:string password_digest:string

Aggiungi il modulo has_secure_password al modello Utente

class User < ActiveRecord::Base
  has_secure_password
end

Ora puoi creare un nuovo utente con password

user = User.new email: '[email protected]', password: 'Password1', password_confirmation: 'Password1'

Verifica la password con il metodo di autenticazione

user.authenticate('somepassword')  

has_secure_token

Crea modello utente

# Schema: User(token:string, auth_token:string)
class User < ActiveRecord::Base
  has_secure_token
  has_secure_token :auth_token
end

Ora quando crei un nuovo utente un token e auth_token vengono generati automaticamente

user = User.new
user.save
user.token # => "pX27zsMN2ViQKta1bGfLmVJE"
user.auth_token # => "77TMHrHJFvFDwodq8w7Ev2m7"

Puoi aggiornare i token usando regenerate_token e regenerate_auth_token

user.regenerate_token # => true
user.regenerate_auth_token # => true


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow