22

난 rails-api를 사용하는 순수한 JSON 레일 4.1 애플리케이션에 페이스 북, 트위터, 이메일/패스워드 인증을 구현하는 최선의 방법을 연구 해왔다. 레일 앱은 뷰가 없으며 안드로이드와 아이폰 애플리케이션 하이브리드 네이티브 앱 (JSON은 네이티브 애플리케이션으로 컴파일 된 각도 애플리케이션 인 이온 프레임 워크를 사용함) 사이에서 JSON을 제공합니다.Rails JSON API oauth 인증

이전에는 auth_token이 클라이언트 응용 프로그램의 헤더에서 Rails API로 전달되는 기본 인증을 구현했습니다.이 API는 레일즈를 사용하여 아무런 문제없이 전달되었지만 지금부터는 Facebook 및 Twitter와 통합해야합니다. oauth를 이용하는 솔루션을 찾고 있습니다.

내가 궁금해하는 부분을 살펴 보았지만 순수한 JSON API를 제대로 사용하지 않는 것 같습니다. 마찬가지로, omniauth는보기 & 리디렉션에 의존하는 것으로 보입니다. 또한, opro와 문지기는 자신의 oauth 공급자가되는 데 좋은 것처럼 보이지만 나는 그들이 제 3자를 어떻게 페이스 북과 트위터처럼 다루는 지 보지 못합니다.

순수 JSON API 앱에 대해 다중 공급자 oauth 인증을 레일에 구현하는 방법은 무엇입니까?

+2

나는 당신에게 1 개 이상의 upvote를 줄 수 있으면 좋겠다. :). 이것은 내가 가진 문제 * 정확하게 * 있습니다. 모두가 토큰 인증에 대해 이야기하고 있지만 타사 인증 방법에 대해서는 아무도 말하지 않습니다. 내 현재 솔루션은 클라이언트가 내 API로 리디렉션하고, OmniAuth로 인증을 처리하고 쿠키에 인증 토큰을 저장 한 다음 다시 클라이언트로 리디렉션했습니다. 그러나 그것은 내가 가지고있는 유일한 클라이언트가 브라우저이기 때문에 효과가 있으며, 나는 그것이 더 일반적인 것을 원한다는 것을 깨달았다. 죄송합니다. 정말 도움이되지 않았습니다 :) –

+0

@ John 안녕하세요, 결국 어떻게 인증을 구현하게 되었습니까? –

+1

@PaulFitzgerald 오픈 소스 https://github.com/johnkelly/heavenly. 기본적으로 페이스 북 인증은 인증 후 토큰 인증이됩니다. – John

답변

3

나는 growl을 사용하여 매우 유사한 JSON API를 만들었습니다. 인증은 사용자 정의 서비스 클래스를 사용하여 Google, Facebook, Twitter에 대해 인증합니다. 페이스 북을위한 서비스 클래스는 facebook tokan을 필요로하고 Koala gem을 사용하여 페이스 북에서 정보를 가져오고 사회적 신원을 채 웁니다. 필요한 경우 새 사용자를 만들거나 동일한 UID 또는 전자 메일을 사용하여 기존 사용자와 사회적 ID를 연결합니다.

이렇게하면 전체 인증 프로세스에서 맞춤 미세 조정이 가능합니다.

API를 문서화하고 테스트 프론트 엔드를 제공하기 위해 swagger도 사용했습니다.

4

블로그를 보시려면 this 블로그를 참조하십시오. 여기에 저자는 몇 가지 좋은 다이어그램과 레일 백엔드와 안드로이드에서 Google oauth2를 구현하는 설명했다. 희망이 도움이 될 것입니다.