1

ビデオコラボレーションプラットフォームを構築しようとしています。APIがあり、私のWebアプリが「サードパーティ」アプリのようになるように設計したいと思います。

私がそれが機能しているのを見る方法は、3つの主要なコンポーネントです。

  • Rubyで書かれたJSONAPI
  • Ruby/Railsで書かれたWebアプリ
  • Coffeescriptのフロントエンドアプリケーション

「プロジェクト」などのリソースに対して認証されたリクエストを作成できるようにしたい

今のところ、認証されたリクエストを取得するためにフロントエンドアプリケーションがRailsアプリと通信し、次にその認証されたリクエストを使用してAPIを呼び出すフロントエンドアプリを想像しています。

このアーキテクチャについていくつか質問があります。

  1. 後でAPIを開く予定の場合、OAuthを使用する必要がありますか?
  2. もしそうなら、リクエストフローはどのようになりますか?

OAuthが標準であるように見え、サードパーティのアプリを認証して別のアプリのリソースにアクセスするという観点からしか見ることができないため、私はこれらの質問をしているだけです。

私はアプリケーションを構築できるので、私は主にいくつかのガイダンスを探していると思います。私はセキュリティの専門家ではありません。助けてくれてありがとう。

4

1 に答える 1

5

私のプロジェクトで今何をしているのかを教えてください:

  1. Rails API (JSON); Rails api gem、グレープ、または完全な Rails フレームワークを使用できます。
  2. AngularJs を使用した単一ページ Web アプリ (バックボーン、emberjs など、使い慣れたものであれば何でもかまいません)

ユーザーの認証方法:

  1. ユーザーは、ユーザー名とパスワードを使用して/loginに投稿します
  2. Rails 部分は (ユーザー名とパスワードによって) ユーザーを認証し、アクセス トークンを作成し (有効期限 (たとえば 30 分) でテーブルに保持します)、それをユーザーに返します。
  3. クライアント側 (angularjs 部分) からの各リクエストは、トークン認証ヘッダーと共に次のように渡されます: Authorization: Token token=[the token going here]
  4. 関連するユーザーを取得するためにトークンを使用する Rails API
  5. トークンの有効期限が切れているか無効な場合は、401 (未承認) が返されます。angularjs の部分が 401 をインターセプトすると、ユーザーをログイン ページにリダイレクトします。
  6. リクエストが認証された場合、有効期限は「今」にリセットされるため、私が話している 30 分間は 30 分間の非アクティブのように機能します。

アクセス トークンを使用すると、さらに多くのことができます。管理者、ユーザーなどの役割を実行し、ユーザーのリソースへのアクセスを制限できます。

于 2012-12-10T21:22:43.547 に答える