2012-06-01 11 views
5

私は現在、Devise 2.1 + Rails 3.2.xを使ってユーザーを認証しています。私はOmniAuth-FacebookとTwitterのサポートをまもなく追加するつもりです。Rails 3.2 + Devise 2.1 + OmniAuth + Backbone.js認証

私は、この既存のインフラストラクチャをBackbone.jsで使いたいと思っていました。これが認証の観点から正しいワークフローであるかどうか教えてください。トークンを返すために

  1. 工夫(またはOmniAuth)を介して、ユーザのログイン
  2. 使用考案のトークン認証可能?
  3. トークンに何らかの方法でアクセスし、APIコールの一部として追加するためのバックボーン?私はユーザーを作成するためのAPIは必要ありません。これはDeviseによって処理されています。

質問: 1.これはどのように実装するのですか? 2.#2と#3の提案/コードサンプル? 3.これで承認をどのように処理しますか?私はCanCanがうまくいくとは思わない。

P.S.私はこれを含む多くの記事を読む: http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/。 認証が完了した後にAPIリソースを保護するのではなく、APIを使用した認証に焦点を当てているようです。

答えて

2

私は実際にすることによって、これが少しでも簡単にするようになった:

ユーザーは認証トークンは、私が考案は、RESTを提供するために有効にされているのと同じアクションを使用する場合は を作成する必要がない、工夫/ OmniAuth経由でログインAPIを使用すると、自動的にセッション情報を使用して認証されるため、追加のトークンの取得/再送信は必要ありません。

P.S. RABLは、RailsでAPIを作成するために生成されます。

0
  1. ワークフローは正しいです。
  2. 私はinterwebsのビットとピースを見つけました。後でそれについてブログに投稿できます。
  3. 正しいです。 Backbone.syncを無効にすることができます。jQueryを使用している場合は、jQueryをグローバルに設定できます。例here

クライアントがその役割について知りたい場合を除き、承認はサーバー側で同じに扱われます。サーバー側では、トークンを介して現在のユーザーを検索し、それに応じて承認します。ユーザーがどのような役割を持っているかを知る必要がある場合は、ユーザーの認証時に役割を送信できます。

関連する問題