2012-06-01 72 views
5

我目前使用Devise 2.1 + Rails 3.2.x來驗證用戶身份。我也將很快添加OmniAuth-Facebook和Twitter支持。Rails 3.2 + Devise 2.1 + OmniAuth + Backbone.js身份驗證

我想通過Backbone.js使用這個現有的基礎設施。如果從認證的角度來看這是正確的工作流程,您能否告訴我?通過制定(或OmniAuth)

  1. 用戶登錄
  2. 使用設計的令牌可驗證返回一個令牌?
  3. Backbone以某種方式訪問​​令牌並將其附加爲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

事實上,我這甚至有點更容易:在通過設計/ OmniAuth

用戶登錄後,沒有認證令牌需要創建 如果我使用的是已啓用設計服務了休息同樣的動作API,它會自動使用會話信息進行身份驗證,因此不需要額外的令牌捕獲/重發。

P.S. RABL是爲了在Rails中創建API而生成的。

0
  1. 工作流程正確。
  2. 我在互聯網上發現了點點滴滴,也許我後來可以在博客上發帖
  3. 正確。您可以覆蓋Backbone.sync,或者如果您使用jQuery,則可以全局配置jQuery。示例here

除非您希望客戶端了解其角色,否則授權在服務器端的處理方式與上述相同。在服務器端,您將通過其令牌找到當前用戶並進行相應的授權。如果您確實需要知道用戶具有哪些角色,則可以在用戶進行身份驗證時發送角色。

相關問題