4

そのため、Rails アプリを開発しています。主に、優れた認証システムの背後でロックダウンしたい API を提供しています。HTML をレンダリングする Rails アプリを作成し、そのために Devise と CanCan を使用しました。今回は、JSON をクライアントに提供したいと考えています。基本的に次の要件があります。

  1. 堅牢な認証システムが必要
  2. ユーザーは、Facebook、Twitter、リンク済み、Google などの既存のアプリでログインできる必要があります。
  3. フルスタック認証が利用可能である必要があります

これは API を提供する私が書いている最初のアプリなので、調査を開始し、これまでに人々が使用した次のソリューションを見つけました。

  1. 私は人々がCanCanでDeviseを使っているのを見てきました
  2. Oauth2 http://railscasts.com/episodes/353-oauth-with-doorkeeper?autoplay=trueの使用について人々が話しているのを見てきました 。
  3. 聞いたことがあります...「ドアキーパーを使用してください」
  4. 使用を聞いたことがあります...「オムニ認証を使用する」

つまり、基本的に私の1日の研究は、基本的に私をもっと混乱させました. 私がこれらを使用するとき、そして私の要件のためにどの組み合わせを使用しますか! アルファベットのスープを理解するのに苦労しています。誰かがこれを理解するのを手伝ってくれますか?

4

1 に答える 1

8

Devise は、あらゆるタイプの Rails アプリ用の認証エンジンです。Devise では、ユーザー名/パスワード、トークン認証 (API に適しています)、および oauth プロバイダー (Google、Facebook など) に対する認証が可能です。これにより、提供するサービスのいずれかを介してユーザーがサインインしていない限り、明らかに API へのアクセスを拒否できます。

CanCan は、Devise の上で動作し、システム内の役割に基づいてユーザーがシステムの特定の部分にアクセスできるようにする認証システムです。CanCan には、ビューまたはコントローラー アクションへのアクセスを許可または拒否するための非常に洗練された DSL 提供canとメソッドがあります。cannot

API の上に独自の oauth ソリューションを展開したい場合、Doorkeeper は oauth プロバイダーの gem です。これは、ユーザーが認証するための oauth エンドポイントを提供する際に、アプリケーションが Google や Facebook と同じように動作するようにしたい場合です。上の方のおっしゃる通り、そんなことはないと思います。

上記の要件を考えると、Devise と CanCan が私が選択するルートになると思います。これにより、ユーザーは最初にユーザー名/パスワード、または一部の oauth プロバイダーによって認証され、その後 API にアクセスするためのトークン認証が許可されます。その後、CanCan を介して特定のアクションへのアクセスをロックできます。

于 2012-08-26T15:32:41.923 に答える