ユーザー認証等に使用されるdeviseというものがあると思いますが、railsチュートリアルのような簡素な認証システムとどちらがいいですか?
簡単に認証システムを作れるだけでなく他にいろいろな利点がdeviseにはあるのでしょうか?
またFacebook等での認証も考えた場合、やはりdeviseを使ったほうがいい、または使わなければできないということはありますか?
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答2件
4
ベストアンサー
それはYESでもありNOでもあります。結局はどんな認証にしたいのかによります。
Railsで認証を実装するにはdeviseが有名ですが、選択肢はそれだけしか無いわけではありません。Railsチュートリアルのように簡易な認証を実装することは場合によってはありです。また、sorceryというまた別の認証ライブラリも結構人気です。
自分で全て作る場合は完全なカスタマイズが可能ですが、結局は車輪の再発明になりかねません。deviseを使えば簡単に認証機能をつくれますが、カスタマイズして行くにはdeviseの中身をよく知らないと厳しいです。sorceryは認証の部品しか提供してくれないのでカスタマイズしやすいですが、部品部品を繋げていくのは自分でするしかありません。どれが良い、どれが悪いというのではなく、どれも一長一短です。
つまり、それぞれの特性を知って、認証はどんな作りになるのかというところから決めるしかありません。オーソドックスならdeviseで十分ですし、ちょこっと認証ならsorceryの一部を使うだけでできるでしょう。凄く特殊なものになりそうなら、一から作るか、deviseまたはsorceryをforkしてカスタマイズするというのもありでしょう。
ただ、一つ注意点を。認証系はちょっとのミスがすぐに脆弱性に繋がります。認証無しでアクセスできたり、他人になりすましできたりしたら、大変危険なわけです。deviseやsorcery等のライブラリは認証の仕組みそのものに詳しい人が作成していますが、自分で作る場合は自分が認証の仕組みそのものに詳しくないと難しいでしょう。少なくとも、deviseやsorceryのソースコードを見て、何をしているのか全て把握できるぐらいではないと、自分で作るのは避けた方が良いと思います。
投稿2017/02/19 21:48
編集2017/02/19 21:49総合スコア21693
0
teratail 上で、過去に類似の質問がでています。そちらも参照するとよいと思います。
参考情報
- rails scaffoldやdeviseのような自動生成メソッドは利用した方がいいですか? https://teratail.com/questions/36868
- ログインシステム(WEB) 自作?危険?セキュリティ対策は? https://teratail.com/questions/34051
投稿2017/02/19 21:59
総合スコア22306
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
関連した質問
Q&A
解決済
Rails 6.0.3.1 アンインストール、再インストール
回答2
クリップ0
更新
2020/06/06
Q&A
解決済
Access 2019 リンクテーブルの排他制御について
回答1
クリップ1
更新
2023/03/24
意見交換
受付中
EntityFrameworkでの親子関係保証および重複回避の実現方法
回答6
クリップ0
更新
2023/03/21
意見交換
受付中
零細IT企業から大手IT企業への転職
回答7
クリップ0
更新
2023/03/16
Q&A
受付中
gas 埋め込みスクリプトをscriptタグに移動させたい
回答1
クリップ1
更新
2023/03/21
Q&A
解決済
【Ruby On Rails】配列の中で複数モデルのインスタンスを取得する方法について
回答1
クリップ0
更新
2023/03/16
意見交換
受付中
AIによる影響について
回答8
クリップ1
更新
2023/03/22
Q&A
解決済
3つのPを右横並びにしたい
回答2
クリップ0
更新
2023/03/17
同じタグがついた質問を見る
Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。
Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
退会済みユーザー
2017/02/20 05:39