Link Search Menu Expand Document

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


Copyright © 2023 RICSystem - partner DIAGO SRL -