2013-01-19 2 views
5

내 놀이/스칼라 응용 프로그램에 SecureSocial을 통합하기 시작했으나 다른보기간에 이루어지는 모든 리디렉션을 정말 좋아하지 않습니다.보기를 사용하지 않고 보안 사회 서비스 사용하기

예 - 기본 로그인 페이지에서 로그인 해보십시오. 잘못된 패스를 입력하면 다른 페이지 (URL)로 리디렉션되지만 동일한 로그인 양식으로 리디렉션됩니다. 유일한 차이점은 오류 메시지가 있다는 것입니다 ...

ajax를 사용하여 데이터를 제출하는 메인 페이지 모서리에 간단한 로그인 양식 (사용자/비밀번호 공급자)이 필요하면이 데이터의 유효성이 검사됩니다. 오류 메시지/s를 표시하거나 window.location을 변경하도록 응답합니다. 이 양식 옆에 fb/twitter 등의 다른 제공 업체를 사용할 수있는 옵션이 추가 된 고급 로그인 페이지로 이동하는 링크를 넣습니다. 그러나 해당 페이지에서 아약스를 사용하여 세부 정보를 제출하고 응답.

나는 SecureSocial 소스를 탐색하려고했지만 거기에 약간의 손실이있었습니다.

SecureSocial을 사용하는 방법은 있지만 어느 것도 사용하지 않을 수 있습니까?

참고 : 나는

답변

2

후 ... 내가 리디렉션 다음에 일반 양식 제출과 로그인 정보 Ajaxly하지를 처리하는, 단지 CSS/디자인 문제에 자신의 의견을 사용자 정의하는 데에 관심이 아니에요 아니에요 일부는 SecureSocial 코드에서 뒤죽박죽으로 작동하는 방식을 더 잘 이해할 수 있습니다.

play.plugins 파일에 나열된 모든 제공 업체를 seperatly로 사용하여 자신의 로그인/인증 코드에서 사용자 정보를 인증 할 수 있습니다. 공급자가 필요로하는 올바른 매개 변수를 보내도록하십시오.

저는 SecureSocial의 ProviderController 클래스가 매개 변수를 기반으로 사용할 공급자를 동적으로 결정하는 방식을 좋아했습니다. 하지만 리다이렉트가하는 응답이 마음에 들지 않았습니다. Ajax 요청에 일부 데이터로 응답하고 클라이언트 측에서 처리하도록했습니다. 내 자신의 Auth.scala 파일 (컨트롤러)에

거의 사본 ProviderController 코드의 모든 :

이 내 솔루션입니다. "사례 ex, case _"와 관련된 리디렉션을 변경하여 사용자와 관련된 SecureSocial 세션 키를 추가 할 때 성공적인 인증에 리디렉션을 유지합니다. 내 경로 파일에서 모든 SecureSocial 관련 경로를 제거했습니다. logintype (userpass/google/fb/etc ...)에 추가 숨겨진 필드를 추가하고 내 로그인 아약스 게시물을 구성하여 내 인증 컨트롤러에 대한 게시물과 함께 보냈습니다.

여기에 더 많은 정보 댓글이 필요하면 답을 수정 해 드리겠습니다.

+0

나는 기본적으로 팝업 화면에 로그인 화면을 보여주고 있기 때문에 사용자가 로그인하거나 취소하면 페이지를 새로 고침하고 싶지 않고 사용자 입력을 잃어 버릴 수도 있습니다 ... 난 그냥 팝업을 닫고 필요한 경우 로그인 상태를 업데이 트하려는. 이 작업을 수행하려면 Ajax 로그인이 필요합니다. – Ixx

+0

다소 늦은 코멘트를 드려 죄송합니다. 예, 아약스가 필요하며 페이지 정상 요청과 리디렉션을 통해 소셜 활동을 보호해야합니다 ... 결국에는 사용을 중단하고 auth20 모듈에서 영감을 얻은 독자적인 몇 가지 인증 클래스를 만들었습니다. 그것은 너무 복잡하지 않고 그런 식으로 가장 융통성이 있습니다. – samz

+0

저는 똑같은 문제를 겪었습니다. 내 Play 애플리케이션 (SecureSocial 맞춤 템플릿 포함)에서 모든 HTML 템플릿을 제거하고 JSON/JavaScript로 대체하려고합니다. SecureSocial 소스를 약간 재 작업하기 시작했습니다 ...하지만 필자는 사용자 이름/암호 공급자가 필요하기 때문에 내 솔루션을 만들 가치가 있다고 생각합니다. 문제 해결 방법에 대한 몇 가지 힌트를 제공해 주시겠습니까? 괜찮은 인증 API를 작성하는 데 도움이되는 좋은 자습서 나 샘플이 있습니까? 감사. – j3d

관련 문제