2012-06-01 2 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. 어떻게 든 토큰에 액세스하고 API 호출의 일부로 추가하려면 백본을 사용 하시겠습니까? Devise가 처리하는 사용자 생성 API가 필요 없습니다.

질문 : 1. 구현 방법은 다음과 같습니다. 2. # 2 및 # 3의 제안/코드 샘플? 3.이 권한 부여는 어떻게 처리합니까? 나는 CanCan이 효과가 있다고 생각하지 않는다.

P. 나는 이것을 포함하여 많은 기사를 읽었습니다 : http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/. 인증이 완료된 후 API 리소스를 보호하는 대신 API를 사용하여 인증에 집중하는 것처럼 보입니다.

답변

2

사실이 조금이라도 더 쉽게로있어 API를 사용하면 자동으로 세션 정보를 사용하여 인증하므로 추가 토큰 캡처/재전송이 필요하지 않습니다.

P. RABL은 Rails에서 API를 생성하기 위해 생성됩니다.

0
  1. 워크 플로우가 정확합니다.
  2. interwebs에서 비트와 조각을 발견했습니다. 나중에 블로그 게시물을 게시 할 수 있습니다.
  3. 맞음. Backbone.sync을 무시할 수 있습니다. 또는 jQuery를 사용하고 있다면 jQuery를 전 세계적으로 confiugure 할 수 있습니다. 예 here

클라이언트가 역할에 대해 알기를 원하지 않는 한 인증은 서버 측에서 동일하게 처리됩니다. 서버 측에서는 토큰을 통해 현재 사용자를 찾아 이에 따라 권한을 부여합니다. 사용자가 가진 역할을 알아야 할 경우 사용자가 인증 할 때 역할을 보낼 수 있습니다. 유증/OmniAuth 통한에서

사용자 로그에는 인증 토큰 내가 고안은 REST를 제공하기 위해 사용할 수있는 동일한 작업을 사용하는 경우 을 생성 할 필요가 없다 :

관련 문제