2013-04-12 3 views
5

私はルビーのレールnoobです。これとは対照的に、私は自分のHTML CSSのjavascriptとjQueryでかなり良いです。最近私はマイケルハルトルのチュートリアルhttp://ruby.railstutorial.org/ruby-on-rails-tutorial-bookを使ってレール上のルビーに入った。レールのnoobsがGem Deviseを使用してはならないのはなぜですか?

私は自分のプロジェクトを構築しようとしており、認証を行う簡単な方法としてgem deviseを使用しています。初心者が認証をするのは難しいので、しかし、誰もがこの宝石を使ってはならないと言います。

なぜ自分のプロジェクトにnoobを使用してはならないのですか?

ヒントありがとうございますが、私は冗長な答えを好むでしょう。

+2

あなたは、あなたが物事をすることができないと言っている人々に常に耳を傾けますか?それを試してみてください。あなたがそれを管理していれば、助けを求めてください。しかし、あなたの現在の質問は話題にはなりません。 –

+2

@SébastienRenauld私はそれが話題ではないとは思わない。何かがひどくフレーズしている場合は、私の意見では正当な問題です。 – Mohamad

+0

@モハマド:それは本当にひどくフレーズです。 "使いやすさを考えている/私はどのように使用するのですか?" 「なぜ、noobを使うべきではないのですか?」よりも、主観的/偏りが少なくなっていました。最初はアドバイスを求め、2番目は意見を求めます。 –

答えて

7

ここまでのアドバイスには、私は完全に同意していません。

あなた自身の認証を、特に初心者としてロールすることは、ユーザーを危険にさらす良い方法です。セキュリティ(特に暗号)は難しく、経験があっても何とか間違ってしまうでしょう。

パスワードベースの認証がどのように機能するのかを学びたい場合は、自由に学習してください。ユーザーがテスト対象を知らずに自分のプライバシーを危険にさらさないようにします。

+3

原則として同意します。しかし、あなたのユーザーを危険にさらす可能性がある他にも多くのことがあります。フレームワークや言語の仕組みがどのように同じリスクになるかについての真の知識を持たずにアプリケーションを構築する。私はセキュリティの基本を知る前に、深刻なアプリを構築してはいけないと主張します。あなたはDeviseを使ってこのことを教えません。 – Mohamad

+0

...また、現在のユーザーにリソースをスコープすることなどについても教えません。 – Mohamad

+1

あなたが議論していることは、あなたが間違いを犯す可能性があるからです。 –

3

アイデアは、noobとして、認証の仕組みの基本を学ぶことが本当に役に立ちます。将来のプロジェクトでDeviseを使用することになっても、独自の認証を開発した経験を持ち、Deviseの裏で何が起こっているのかを知ることは本当に役に立ちます。

これについて独自の決定をする必要があります。あなたがドアを出て急いでいる場合は、最初にDeviseを使う方法を学ぶことが正しい方法かもしれません。あなたは時間がある場合は、自分のロールする方法を把握しようとするのは良いアイデアです。少なくとも、それはあなた自身をロールにライアンベイツのビデオをチェックアウトするあなたの時間の価値がある:http://railscasts.com/episodes/250-authentication-from-scratch

また、工夫を使用してから、新しいレールの開発者を落胆考案のドキュメントからこの:https://github.com/plataformatec/devise#starting-with-rails

5

あなたが使用することを計画していない限りDeviseを使用すると、独自の認証を書くよりも時間がかかります。

あなたのニーズはどれほど複雑かによって異なります。たとえば、忘れてしまったパスワード機能や検証機能などが必要かどうか。

Railsのhas_secure_passwordを使用すると、独自の認証を実装するのは非常に簡単です。舞台裏で何が起こっているのかを知ることも非常に役に立ちます。学習プロセスの一部ですが、それは簡単で楽しいものです。

基本的な認証を書くには、文字通り約10行のコードが必要です。あなたが緊急の必要がなければ、チュートリアルに従ってください。あなたはそれからたくさんの良いことを学び、Deviseを使うことで多くの素晴らしい情報が失われるでしょう。

+4

私はこの答えのいくつかに同意しません。 Deviseには10種類のモジュール(覚えやすい、forgot_passwordなど)が組み込まれていて、独自のAuthをローリングする際にこれらのモジュールを作成するのに10行以上を要します。 – Catfish

+0

@キャットフィッシュ、ポイントを取った。 'remember_me'機能は約6行かかりますが。私は明確にします。 – Mohamad

+1

ジェネレータを使用しないでゼロからユーザを作成する方法を学ぶのは、レールがどのように動作しているか、ルートを教えているか、コントローラがどのような順序で呼び出されているか、before_filter/before_actionはどのようになっているかコントローラと同じでないモデルからの情報にアクセスします。私は自分自身を転がす前にDeviseを使ってみました。私はDeviseが自分のものを転がすことと比べて頭痛を感じました。 OOはあなたの最も強力な宝石です、それを学んでください。 – christoshrousis

関連する問題