deviseのインストール手順
こんにちは、PeaceJetです。今回はDeviseのインストール手順を書こうと思います。
deviseとは
deviseとはRuby on Railsで作成したWEBアプリケーションに対して、複雑なコードを書かず、簡単に認証機能を実装することの出来るGemとなります。
認証機能を提供するGemは他にもありますが、そのなかでも一番使用されております。
それを裏付けるのが、GitHubでのStar数やWatch数です。
Gem | 星の数 | GitHub |
---|---|---|
devise | 18,471 | https://github.com/plataformatec/devise |
authlogic | 4,038 | https://github.com/binarylogic/authlogic |
sorcery | 461 | https://github.com/Sorcery/sorcery |
Rodauth | 411 | https://github.com/jeremyevans/rodauth |
LoadError in Devise::SessionsController#create cannot load such file -- bcrypt_ext Extracted source (around line #292): def require(file) result = false load_dependency(file) { result = super } result end end
開発環境
以下の開発環境となります。
Raby 2.4.3
Rails 5.1.3
Gemfile
Gemfileには以下のように追記しましょう。
gem 'devise' # Ruby2.3以後は、以下のGemが必要になります。 gem 'bcrypt-ruby', '~> 3.0.0'
Console
# bundle $ bundle install # deviseをインストールします。 $ rails g devise:install
# Deviseの日本語化 # config/locales以下のファイルを置き換えます。 devise.ja.yml devise.en.yml
$ rails secrets:setup $ rails secret $ notepad rails secrets:edit # /bin/rails secretsというファイルが作成される。 $ rails g devise:install $ rails g devise User invoke active_record create db/migrate/20180404132544_devise_create_users.rb create app/models/user.rb insert app/models/user.rb route devise_for :users $ rails g devise:views users invoke Devise::Generators::SharedViewsGenerator create app/views/users/shared create app/views/users/shared/_links.html.erb invoke form_for create app/views/users/confirmations create app/views/users/confirmations/new.html.erb create app/views/users/passwords create app/views/users/passwords/edit.html.erb create app/views/users/passwords/new.html.erb create app/views/users/registrations create app/views/users/registrations/edit.html.erb create app/views/users/registrations/new.html.erb create app/views/users/sessions create app/views/users/sessions/new.html.erb create app/views/users/unlocks create app/views/users/unlocks/new.html.erb invoke erb create app/views/users/mailer create app/views/users/mailer/confirmation_instructions.html.erb create app/views/users/mailer/email_changed.html.erb create app/views/users/mailer/password_change.html.erb create app/views/users/mailer/reset_password_instructions.html.erb create app/views/users/mailer/unlock_instructions.html.erb $ rails secrets:setup Adding config/secrets.yml.key to store the encryption key: f042aef509eb39d2b348368c42a4e3b8 Save this in a password manager your team can access. If you lose the key, no one, including you, can access any encrypted secrets. create config/secrets.yml.key Ignoring config/secrets.yml.key so it won't end up in Git history: append .gitignore Adding config/secrets.yml.enc to store secrets that needs to be encrypted. For now the file contains this but it's been encrypted with the generated key: # See `secrets.yml` for tips on generating suitable keys. # production: # external_api_key: 1466aac22e6a869134be3d09b9e89232fc2c2289 You can edit encrypted secrets with `bin/rails secrets:edit`. Add this to your config/environments/production.rb: config.read_encrypted_secrets = true
#/config/Initializer/devise.rb # 有効にすることで、好みのviewを使えるようになる。 config.scoped_views = true