sorceryとはRailsに認証機能を実装するためのライブラリgemです。
https://github.com/Sorcery/sorcery/wiki/Simple-Password-Authentication
まず最初にsorceryをGemfileに追加して、bundle install
します。
gem 'sorcery'
sorceryをアプリケーションにインストールします。
Sayo-MacBook-Pro:emoji_diary SAYO$ bundle exec rails g sorcery:install
Running via Spring preloader in process 72802
create config/initializers/sorcery.rb
generate model User --skip-migration
rails generate model User --skip-migration
Running via Spring preloader in process 72816
invoke active_record
create app/models/user.rb
insert app/models/user.rb
File unchanged! The supplied flag value not found! app/models/user.rb
create db/migrate/20210522041856_sorcery_core.rb
作成されたファイル
config/initializers/sorcery.rb
app/models/user.rb
db/migrate/20210522041856_sorcery_core.rb
現在のマイグレーションファイル(20210522041856_sorcery_core.rb
)
class SorceryCore < ActiveRecord::Migration[6.1]
def change
create_table :users do |t|
t.string :email, null: false
t.string :crypted_password
t.string :salt
t.timestamps null: false
end
add_index :users, :email, unique: true
end
end
crypted_password
とsalt
カラムは、暗号化されたパスワードです。このカラムを使うことでユーザーにパスワードの情報を閲覧させないようにできます。
ビューとコントローラでパスワードを使うときはpassword
とpassword_confirmation
カラムを使います。
今回私が作成するUsersテーブルはこのような設計になっています。
nickname
カラムはnull制約
name
カラムにはnull制約、unique制約