2014-07-26 4 views
2

(다른 서비스에서) 원격 사용자 계정은 물론 데이터베이스의 로컬 사용자 계정을 처리해야하는 포럼 응용 프로그램을 작성하고 있습니다. 여기에 내가 지금까지 가지고있는 것이있다 :Devise + Omniauth, 콜백 단계가없는 공급자

  • 원격 사용자가 로그인 할 때 로컬 사용자 (암호없이)를 만들어야하므로 포럼 게시물을 추적 할 수있다.
  • 인증 데이터를 확인하기 위해 원격 서비스를 호출하기 위해 Omniauth 공급자를 작성해야합니다.

이제 원격 공급자에는 사용자 이름과 암호를 보내고 부울 (true/false)을 반환하여 사용자를 인증 할 수있는 API 끝 점이 있습니다. 내 테스트 요청은 다음과 같이 보았다 :

POST /authenticate ...other headers... [email protected]&password=testuserpassword

이 같은 응답 : <boolean>true</boolean>

는 XML 파싱 충분히 쉽게, 나는 데 유일한 문제는 Omniauth 추상적 인 것 같습니다이다 제공 업체는 request_phasecallback_phase입니다. 제공 업체가 request_phase 인 것으로 보입니다. 어떻게해야합니까? Omniauth가 응용 프로그램의 올바른 도구입니까?

답변

2

httpclient 보석과 함께 맞춤 개발자 전략을 사용하여 구현했습니다. 거기에서 API 끝점을 호출하고 XML을 구문 분석하여 유효한 사용자가 로그인했는지 확인하는 것만 큼 간단합니다. 이전에 로그인 한 적이없는 경우 내 측면에 비밀번호가없는 사용자를 만들었습니다 .

+0

언제든지이 코드를 구현하기 위해 만든 코드를 열 수 있습니까? – ryanfelton

+0

@ryanfelton 5 번과 10 번 줄을 조정해야하지만, 내'config/initializers/devise.rb'에 이와 비슷한 것을 넣을 수있었습니다. https://gist.github.com/ fwilson42/737a5089caa62d855fb9 –

관련 문제