Creazione di un backend API - PARTE 4 -
Authentication
In questa quarta parte facciamo l’authentication per la nostra dashboard e quindi anche per tutti gli utenti che si vogliono collegare.
Un discorso diverso sarà la parte di RUOLO che ogni utente dovrà ricoprire all’interno dell’app. Questo tema lo affronteremo nella PARTE 5
Impostazioni
Per realizzare questa parte, invece di usare devise come nel 90% dei progetti useremo un’altra gemma molto interessante e promettente clearance . Questo progetto che trovate su github è aggiornato con regolarità e quindi garantisce anche costanza di aggiornamenti di sicurezza e aggiunta di nuove features.
Aggiungiamo al nostro Gemfile:
gem 'clearance'
eseguiamo il solito comando per installare la gemma:
$: bundle install
Adesso eseguiamo :
$: bundle exec rails generate clearance:install
Configurazione
Apriamo il file di configurazione di clearance in config/initializers/clearance.rb e dovreste avere una cosa del genere:
Clearance.configure do |config|
config.mailer_sender = "reply@example.com"
config.rotate_csrf_on_sign_in = true
end
All’interno di questo file potrete mettere alcune configurazioni interessanti come:
- permettere la registrazione
- gestione dei cookies
- tipologia di password
- … ecc…
Alcune di queste caratteristiche le vedremo nel momento che ci serviranno ;)
Adesso apriamo il controller nello scope admin : controollers/admin/application_controller.rb: Modificate come segue:
module Admin
class ApplicationController < Administrate::ApplicationController
include Clearance::Controller
before_action :require_login
# Override this value to specify the number of elements to display at a time
# on index pages. Defaults to 20.
# def records_per_page
# params[:per_page] || 20
# end
end
end
NOTE: Il metodo authenticate_admin che viene inserito con l’installazione di administrate lo abbiamo eliminato.
Inoltre dato che abbiamo usato il database dell’applicazione delle API nella parte 2 dovreste avere già l’utente admin pronto per i test.
Ora assicuratevi che il file config/routes.rb sia come il seguente:
Rails.application.routes.draw do
namespace :admin do
resources :users
resources :posts
root to: "users#index"
end
end
TESTING
Adesso avviate il server:
$: bundle exec rails server
Aprite il broswer alla pagina: http://localhost:3000/admin/ vi dobrebbe chiedere utente e password:
utente: utente registrato nel database che state usando
password: la sapete solo voi :)
Conclusione
Adesso che abbiamo visto come usare clearance possiamo fare delle configurazioni più avanzate ma aggiungeremo anche la gestione dei ruoli.
Buon testing