teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤字など修正

2016/06/13 17:49

投稿

退会済みユーザー
answer CHANGED
@@ -1,11 +1,11 @@
1
1
  deviseはログイン認証以外に,メール認証や不正ログインに対するロック等認証周りの様々な設定が簡単に扱える多機能なライブラリです。
2
2
 
3
- 実装は複雑に見えるかも知れませんが,認証だけであれば実際は セッションにログイン情報持たせてパスワードハッシュ化してXSSやスクリプトインジェクションなどのセキュリティ対策を施す処理をモデルで一般化して実装したものに過ぎないので,何も複雑なことはやっていません。しかしどんなモデルやコントローラ一般化してログイン処理を行うので,rails gでモデルやviewを生成するとすぐに認証できる状態のコードが生成出来ます。
3
+ 実装は複雑に見えるかも知れませんが,認証だけであれば実際は セッションにログイン情報持たせてパスワードハッシュ化してXSSやスクリプトインジェクションなどのセキュリティ対策を施す処理をモデルで一般化して実装したものに過ぎないので,何も複雑なことはやっていません。しかしどんなモデルやコントローラ一般化してログイン処理を行うので,rails gでモデルやviewを生成するとすぐに認証できる状態のコードが生成出来ます。
4
4
  ログインを別々のモデルで行いたい時もすぐに追加できます。
5
5
 
6
6
  deviseの元コードが読めるのであれば自分で実装するにしても結果的にdeviseをほとんど部分化するだけの実装になりdeviseを使った方が効率いいことに気付くと思います。
7
7
 
8
- ただブラックボックスに見えて分かりづらい学習コストがかかるのも,事実なので,単純な認証しかいらない。セキュリティ対策も問題ない。deviseの機能なんて全部自分で実装出来るしもっとシンプルに書けるし手間でもないというレベルであれば全部実装してもいいと思います
8
+ ただブラックボックスに見えて分かりづらいから脱却するには学習コストがかかるのも,事実なので,単純な認証しかいらない。セキュリティ対策も問題ない。deviseの機能なんて全部自分で実装出来るしもっとシンプルに書けるし手間でもないというレベルであれば全部実装してもいいと思います
9
9
 
10
10
  またどうやってwebアプリケーションで認証を実装するのか知らないのにdeviseを使うと使ってて消耗したり手の込んだカスタマイズをやりたくても仕様が解らなくて断念せざるを得ないという事になったりするので,deviseを使うのであれば,ログインモデルやセッションにどのような情報を持たせてどのようにデータベースと照らし合わせどのように認証後コントローラで処理させるかくらいの知識は身につけてから使うと良いと思います。
11
11