An open API service indexing awesome lists of open source software.

https://github.com/balita1124/rails-setting-up-devise

Mise en place de devise dans une application ruby on rails
https://github.com/balita1124/rails-setting-up-devise

devise example mysql ruby ruby-on-rails

Last synced: about 2 months ago
JSON representation

Mise en place de devise dans une application ruby on rails

Awesome Lists containing this project

README

          

# Exemple d'utilisation de devise

Cette exemple illustre l'utilisation de Devise

Specification:

* Rails 5
* Devise 4.2.1
* Mysql

Utilisation:

* 1 - Création de l'application
$ rails new Devise -d mysql
* 2 - Ajouter devise dans le Gemfile

gem 'devise'
gem 'bcrypt', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt'

* 3 - Installation des fichiers de configuration de devise

$ rails generate devise:install

* 4 - Génération du module devise

$ rails generate devise user

* 5 - Migration

$rake db:migrate

* 6 - Création des controleurs(view aussi)

$ rails generate controller home index

* 7 - Modification du homeController

class HomeController < ApplicationController

before_filter :authenticate_user!

def index
end

def new
end

def edit
end

end
* 8 - Authentification avec un nom d'utilisateur

8 - a) Ajouter username dans user

$ rails generate migration add_username_to_users username:string

8 - b) Changer le fichier de configuration de devise(config/initializers/devise.rb)

config.authentication_keys = [:username]
config.case_insensitive_keys = [:username]
config.strip_whitespace_keys = [:username]

8 - c) Générer les views

$ rails generate devise:views

8 - d) Remplacer login par username dans app/views/devise/sessions/new.html.erb

8 - e) Ajouter username dans app/views/devise/registrations/new.html.erb

8 - c) Ajouter ceci dans /app/controller/application_controller.rb

devise_parameter_sanitizer.for(:sign_in) {|u| u.permit(:email,:username)}
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :username, :password, :password_confirmation)}

* 9 - Authentification à la fois avec un nom d'utilisateur et un email

9 - a) ajouter ceci dans /app/models/user.rb

attr_accessor :signin

9 - b) changer la valeur suivante dans /config/initializers/devise.rb

config.authentication_keys = [ :signin ]

9 - c) Parameterer le modele, ajouter ce code dans ce dernier

validates :username, :uniqueness => {:case_sensitive => false}

def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => signin.downcase }]).first
end
9 - d) Ajouter ceci dans /app/controller/application_controller.rb

before_filter :configure_permitted_parameters, if: :devise_controller?

protected

def configure_permitted_parameters

devise_parameter_sanitizer.for(:sign_in) {|u| u.permit(:signin)}
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email,:username, :password, password_confirmation)}

end
9 - e) Ajouter signin dans /app/views/devise/sessions/new.html.erb

* 10 - Modifier le compte de l'utilisateur

10 - a) Ajouter username dans