5

私は現在、Devise 2.1 +Rails3.2.xを使用してユーザーを認証しています。また、OmniAuthを追加する予定です-FacebookとTwitterのサポートも間もなく追加されます。

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

  1. Devise(またはOmniAuth)を介したユーザーログイン
  2. DeviseのTokenAuthenticatableを使用してトークンを返しますか?
  3. どういうわけかトークンにアクセスし、API呼び出しの一部としてそれを追加するためのバックボーン?Deviseによって処理されているユーザーを作成するためのAPIは必要ありません。

質問:1。これはあなたがそれを実装する方法ですか?2.#2と#3に関する提案/コードサンプルはありますか?3.これで承認をどのように処理しますか?CanCanは機能しないと思います。

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

4

2 に答える 2

2

私は実際にこれを少しでも簡単にしました:

ユーザーはDevise/OmniAuth経由でログインし、認証トークンを作成する必要はありません。RESTAPIを提供するためにDeviseが有効になっているのと同じアクションを使用すると、認証にセッション情報が自動的に使用されるため、追加のトークンのキャプチャ/再送信はありません。が必要です。

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

于 2012-06-14T02:16:04.560 に答える
0
  1. ワークフローは正しいです。
  2. インターウェブで断片を見つけました。後でブログに投稿できるかもしれません。
  3. 正しい。をオーバーライドできますBackbone.sync。または、jQueryを使用している場合は、jQueryをグローバルに構成できます。ここの例

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

于 2012-06-08T17:19:45.720 に答える